剑指 Offer 05. 替换空格https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/
难度简单168
请实现一个函数,把字符串 s
中的每个空格替换成"%20"。
示例 1:
输入:s = "We are happy." 输出:"We%20are%20happy."
限制:
0 <= s 的长度 <= 10000
第一步 计算空格个数
第二步 扩充字符串大小
第三步 从后向前替换
class Solution {
public:
string replaceSpace(string s) {
//1.统计空格个数
int oldSize=s.size();
int count = 0;
for(int i = 0;i<oldSize;i++){
if(s[i]==' '){
count++;
}
}
//2.数组扩容
s.resize(s.size()+count*2);
int newSize = s.size();
//3.从后向前替换
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;
}
};