最简便思路:使用StringBulider工具类,一次遍历即可,遍历到空格直接append(%20)即可。
public String replaceSpace(StringBuffer str) {
StringBuilder stringBuilder = new StringBuilder();
for(int i = 0 ; i < str.length();i++){
if(str.charAt(i) == ' '){
stringBuilder.append("%20");
}else stringBuilder.append(str.charAt(i));
}
return stringBuilder.toString();
}
时间复杂度O(n);
空间复杂度O(n);
《剑指Offer》书中的双指针法与StringBulider是一样的,但是我认为工具类会跟简单方便。所以不实现了。