剑指 Offer 05. 替换空格(字符串 双指针法)(Leetcode刷题笔记)
https://lunan0320.cn
文章目录
题目
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
解题代码 C++
class Solution {
public:
string replaceSpace(string s) {
int length1 = s.size();
int count = 0;
// 先判断有多少的空格
for (int i = 0; i < length1; i++){
if (s[i] == ' '){
count++;
}
}
//为字符串重新划分大小
s.resize(s.size() + 2 * count );
int length2 = s.size();
int i = length2 - 1;
int j = length1 - 1;
//注意此处的条件
while(i >= 0 && j >= 0){
//不是空格的话直接替换
if (s[j] != ' '){
s[i] = s[j];
i--;
j--;
}else{
//遇到空格就替换成%20
s[i] = '0';
s[i-1]='2';
s[i-2]='%';
i -= 3;
j--;
}
}
return s;
}
};