Easy | 剑指 Offer 05. 替换空格
剑指 Offer 05. 替换空格
请实现一个函数,把字符串 s
中的每个空格替换成"%20"。
示例 1:
输入:s = "We are happy."
输出:"We%20are%20happy."
限制:
0 <= s 的长度 <= 10000
解题思路
先扫描数组, 统计空格的数量, 每个空格替换成%20之后, 字符长度增加2.于是可以依次得到字符的总长度。然后再次扫描数组, 不过是从右往左扫描并赋值。遇到控制时, 就连续赋值三个字符。
public String replaceSpace(String s) {
if (s == null || s.length() == 0) {
return "";
}
int spaceCount = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == ' ') {
spaceCount++;
}
}
char[] res = new char[s.length()+2*spaceCount];
for(int i = s.length()-1, j = res.length - 1; i >= 0; i--) {
if (s.charAt(i) != ' ') {
res[j] = s.charAt(i);
j--;
} else {
res[j--] = '0';
res[j--] = '2';
res[j--] = '%';
}
}
return String.valueOf(res);
}