LeetCode-剑指 Offer 05. 替换空格
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
思路:
- 循环判断
class Solution:
def replaceSpace(self, s: str) -> str:
s1 = ''
for i in s:
if i == ' ':
s1 += '%20'
else:
s1 += i
return s1
2. 在原数组进行增加,首先要判断空格的数量,然后设置两个指针从后往前依次判断(C++才可以原地修改字符串)
class Solution {
public:
string replaceSpace(string s) {
int count = 0, len = s.size();
// 统计空格数量
for (char c : s) {
if (c == ' ') count++;
}
// 修改 s 长度
s.resize(len + 2 * count);
// 倒序遍历修改
for(int i = len - 1, j = s.size() - 1; i < j; i--, j--) {
if (s[i] != ' ')
s[j] = s[i];
else {
s[j - 2] = '%';
s[j - 1] = '2';
s[j] = '0';
j -= 2;
}
}
return s;
}
};