思路一:使用额外的集合辅助求解
构建一个StringBuffer,遍历字符串,如果不是空格就直接加入StringBuffer中,如果是空格的话就添加"%20"进StringBuffer中,最后返回结果。
时间复杂度:O(n) ,只遍历了一次字符串。
空间复杂度:O(n),使用了大小为n的额外空间
- 代码实现:
class Solution {
public String replaceSpace(String s) {
if(s.length() == 0){
return s;
}
StringBuffer res = new StringBuffer();
int index = 0;
while(index < s.length()){
char a = s.charAt(index);
if(a != ' '){
res.append(a);
}else{
res.append("%20");
}
index++;
}
return res.toString();
}
}
解法二,直接调用API
- 代码:
class Solution {
public String replaceSpace(String s) {
if(s.length() == 0){
return s;
}
return s.replace(" ", "%20");
}
}
网友评论