题目:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
练习地址
https://www.nowcoder.com/practice/4060ac7e3e404ad1a894ef3e17650423
https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/
参考答案
public class Solution {
public String replaceSpace(StringBuffer str) {
if (str == null || str.length() == 0) {
return str.toString();
}
int blanks = 0;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == ' ') {
blanks++;
}
}
if (blanks == 0) {
return str.toString();
}
int size = str.length() + 2 * blanks;
char[] chars = new char[size];
for (int i = str.length() - 1, j = size - 1; i >= 0; i--) {
if (str.charAt(i) == ' ') {
chars[j--] = '0';
chars[j--] = '2';
chars[j--] = '%';
} else {
chars[j--] = str.charAt(i);
}
}
return new String(chars);
}
}
复杂度分析
- 时间复杂度:O(n)。
- 空间复杂度:O(n)。