【剑指 Offer 05 替换空格】
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
剑指 Offer 05
示例
输入:s = "We are happy."
输出:"We%20are%20happy."
题解
- 计算空格的个数,以计算替换后字符串的长度;
- 用两个指针分别从新旧字符串的末尾开始遍历,如果遇到旧字符串中的空格字符,那么就替换字符;
Solution
class Solution {
public String replaceSpace(String s) {
if (s == null || s.length() == 0) {
return s;
}
// calculate the numbers of spaces
int count = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == ' ') {
count++;
}
}
char[] strArr = new char[s.length() + 2 * count];
int first = s.length() - 1;
int second = strArr.length - 1;
while (first >= 0) {
if (s.charAt(first) == ' ') {
strArr[second--] = '0';
strArr[second--] = '2';
strArr[second--] = '%';
} else {
strArr[second--] = s.charAt(first);
}
first--;
}
return new String(strArr);
}
}