# 【leetcode刷题日记】剑指 Offer 05. 替换空格
【leetcode刷题日记】剑指 Offer 05. 替换空格
问题描述
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例
输入:s = "We are happy."
输出:"We%20are%20happy."
解法
1.求字符串的原有长度len和含空格数量count
2.建立新字符串,令其长度为len+2*count;
3.对新字符串从后向前填充,遇到空格依次填充0,2,%
class Solution {
public String replaceSpace(String s) {
int len = s.length();
int spaceCount = 0;
for(int i=0;i<len;i++){
if(s.charAt(i) == ' '){
spaceCount++;
}
}
int newLen = len + spaceCount*2;
char[] res = new char[newLen];
for(int i=newLen-1,j=len-1 ;i>=0 && j>=0;i--,j--){
char temp = s.charAt(j);
if(temp != ' '){
res[i] = temp;
}else{
res[i] = '0';
res[--i] = '2';
res[--i] = '%';
}
}
return new String(res);
}
}