题目描述:
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
链接:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/
示例 1:
输入: s = “We are happy.”
输出: “We%20are%20happy.”
思路分析:从后往前遍历字符串,遇到空格时,插入02%,最后对返回的字符串进行反转。
代码:
class Solution {
public:
string replaceSpace(string s) {
if(s.empty())
return s;
int i = s.size() - 1;
string ret;
while(i >= 0)
{
if(s[i] == ' ')
ret.append("02%");
else
ret.push_back(s[i]);
--i;
}
reverse(ret.begin(),ret.end());
return ret;
}
};
思路分析:遍历源字符串,将‘ ’
直接替换为“%20”
。
代码:
class Solution {
public:
string replaceSpace(string s) {
if(s.empty())
return s;
int forward = 0;
while((forward = s.find(' ',forward)) != string::npos)
s.replace(forward,1,"%20");
return s;
}
};