剑指 Offer 05. 替换空格
解题方法
- 首先遍历字符串,统计出字符串中空格的总数 spaceNum
- 扩充字符串的长度。设立两个指针,根据数学规律进行后移复制。
class Solution {
public:
string replaceSpace(string s) {
int spaceNum = 0;
for(int i=0;i<s.size();i++){ //统计空格总数
if(s[i] == ' '){
++spaceNum;
}
}
int originalLen = s.size();
int newLen = originalLen+spaceNum*2;
s.resize(newLen); //扩充字符串长度
int indexOfOriginal = originalLen;
int indexOfNew = newLen;
while(indexOfNew>=0){
if(s[indexOfOriginal] == ' '){
indexOfOriginal--;
s[indexOfNew--] = '0';
s[indexOfNew--] = '2';
s[indexOfNew--] = '%';
}else{
s[indexOfNew--] = s[indexOfOriginal--];
}
}
return s;
}
};