Leetcode.剑指offer.05.替换空格
剑指 Offer 05. 替换空格 - 力扣(LeetCode) (leetcode-cn.com)
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
输入:s = “We are happy.”
输出:“We%20are%20happy.”
限制:
0 <= s 的长度 <= 10000
思路:首先string不是自动扩充的当你以%20替换空格,string必然膨胀,所以我们应该重置其size。然后我们从后往前的遍历并替换(如果我们从前往后遍历,每次都要把要替换的空格后面的元素往后移动。)
class Solution {
public:
string replaceSpace(string s) {
int count=0;
int oldsize=s.size();
for(int i=0;i<s.size();i++){
if(s[i]==' '){
count++;
}
}
s.resize(s.size()+count*2);
int newsize=s.size();
for(int i=oldsize-1,j=newsize-1;i<j;i--,j--){
if(s[i]!=' '){
s[j]=s[i];
}
else{
s[j]='0';
s[j-1]='2';
s[j-2]='%';
j-=2;
}
}
return s;
}
};