题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
解题思路
很简单,从后往前遍历就对了。
代码实现
public class Problem05 {
public String replaceSpace(StringBuffer str) {
StringBuffer res = new StringBuffer();
int len = str.length() - 1;
for(int i = len; i >= 0; i--){
if (str.charAt(i) == ' '){
res.append("02%");
}else{
res.append(str.charAt(i));
}
}
return res.reverse().toString();
}
}
代码总结
从前往后移动字符串,则时间效率太低。从后往前遍历,可以减少移动的次数,则可降低时间复杂度。