什么是真实长度,字符串S中有一些空格是留着给你变%20的,有些空格是提供空间的,所以需要一个length来说明
class Solution {
public String replaceSpaces(String S, int length) {
StringBuilder sb = new StringBuilder();
for(int i = 0; i < length; i++){
if(S.charAt(i) == ' '){
sb.append("%20");
}
else{
sb.append(S.charAt(i));
}
}
return sb.toString();
}
}
题目说用数组实现,优点并不在于可以直接操作,而在于对数组的存取比较快。
做法是从后往前替换,有点类似于插入排序的感觉,两个指针,一个指向末尾,一个指向真实长度的末尾,真实指针遇到空格,末尾指针就加“%20”,遇到正常字符,就正常添加,