剑指 Offer 05. 替换空格
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
**示例 1:**
输入:s = "We are happy."
输出:"We%20are%20happy."
**限制:**
0 <= s 的长度 <= 10000
解答
利用Java的可变字符串StringBuilder,遍历字符串s,对每个字符进行判断,若为空格,直接res.append(“%20”),否则,res.append(item).时间复杂度O(N),空间复杂度O(N).
class Solution {
public String replaceSpace(String s) {
if(s == null) return null;
char[] str = s.toCharArray();
StringBuilder res = new StringBuilder();
for(char item : str){
if(' ' == item){
res.append("%20");
}
else{
res.append(item);
}
}
return res.toString();
}
}
注:c++中的string是可变的,因此可以基于c++实现原地替换。时间复杂度O(N),空间复杂度O(1).