像有的题目,不要陷入一个圈套,无法换个角度来求解问题。比如这道题,要求去替换空格,初次做的话可能会想着怎么在原字符串上找到空格,然后把空格替换。其实可以换个角度,我们重新来构建一个字符串。
简单题,可以用一个StringBuilder实现动态 从0构建题目要求的字符串。遍历原来那个字符串,如果遇到空格则添加%20,否则直接添加当前遍历到的char。
代码如下:
class Solution {
public String replaceSpace(String s) {
StringBuilder str = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
char tmp = s.charAt(i);
if (tmp == ' ') str.append("%20");
else str.append(tmp);
}
return str.toString();
}
}