(1)代码
方法一
(书中) 主要将空间复杂度o(n),降到o(1)
public class Solution {
public String replaceSpace(StringBuffer str) {
int len1 = str.length() - 1;
for(int i = 0; i <= len1; i++){
if(str.charAt(i) == ' ') str.append(" ");
}
int len2 = str.length() - 1;
while(len2 > len1 && len1 >= 0){
char c = str.charAt(len1--);
if(c == ' '){
str.setCharAt(len2--, '0');
str.setCharAt(len2--, '2');
str.setCharAt(len2--, '%');
}else{
str.setCharAt(len2--, c);
}
}
return str.toString();
}
}
方法二:
class Solution {
public String replaceSpace(String s) {
StringBuilder res = new StringBuilder();
for(Character c : s.toCharArray()){
if(c == ' ') res.append("%20");
else res.append(c);
}
return res.toString();
}
}
方法三:
用Java本身的方法replace()
代码如下:
public class Solution {
public String replaceSpace(StringBuffer str) {
return str.toString().replace(" ","%20");
}
}