剑指Offer总结——替换空格
这一次我们来做“替换空格”:
class Solution {
public:
void replaceSpace(char *str,int length) {
int len = 0, resLen = 0;
while(str[len] != '\0') {
if(str[len] == ' ') {
resLen += 2;
}
++len;
++resLen;
}
while(len>=0) {
if(str[len]==' ') {
str[resLen--] = '0';
str[resLen--] = '2';
str[resLen--] = '%';
--len;
}
else {
str[resLen--] = str[len--];
}
}
}
};
思路很简单,这里简单说一下:
- 计算出最终答案的长度(就是
resLen
) - 从尾部向头部进行插入,当发现了空格的时候直接按照0、2、%来插入
本博客文章默认使用CC BY-SA 3.0协议。