先给原字符串扩展长度,每有1个空格长度增加2个单位,指针t指向扩展后字符串尾,指针p指向原字符串的尾,从后往前遍历若p==空格时,t依次往前填充"02%";若p!=空格,t填充p指向的字符,双指针继续往前遍历。
public class Solution {
public String replaceSpace(StringBuffer str) {
int p=str.length()-1;
for(int i=0;i<=p1;i++){
if(str.charAt(i)==' ')
str.append(" ");
}
int t=str.length()-1;
while(p>=0&&t>p){
char c=str.charAt(p--);
if(c==' '){
str.setCharAt(t--,'0');
str.setCharAt(t--,'2');
str.setCharAt(t--,'%');
}else{
str.setCharAt(t--,c);
}
}
return str.toString();
}
}