剑指 Offer 05. 替换空格
请实现一个函数,把字符串 s 中的每个空格替换成"%20"
class Solution {
public:
string replaceSpace(string s) {
//快慢指针从头遍历 每遇到一个空格 就让快指针多走两步
int fast = 0;
int slow = 0;
for (; slow < s.size(); slow++)
{
if (s[slow] == ' ')
{
fast += 3;
}
else
{
fast++;
}
}
s.resize(fast + 1);
//此时的fast指向扩充后字符串的末尾 low指向未扩充的末尾
//让两个指针从后往前遍历 每遇到一个空格就往fast指针的位置从后往前写02%
for (; slow >= 0; slow--)
{
if (s[slow] == ' ')
{
s[fast--] = '0';
s[fast--] = '2';
s[fast--] = '%';
}
else
{
s[fast--] = s[slow];
}
}
return s;
}
string replaceSpace(string s) {
for (int i = 0; i < s.size(); i++)
{
if (s[i] == ' ')
{
s.replace(i, 1, "%20");
}
}
return s;
}
};
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理