05,替换空格
剑指 Offer 05. 替换空格
难度简单
请实现一个函数,把字符串 s
中的每个空格替换成"%20"。
示例 1:
输入:s = "We are happy." 输出:"We%20are%20happy."
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; } };
C ++ 可以原地修改 思路:从前往后复制o(n*n) 从后向前复制o(n)
Python 不行
类似的题目还有合并有序数组也可以从后向前复制