请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
输入:s = "We are happy."
输出:"We%20are%20happy."
限制:
0 <= s 的长度 <= 10000
Python实现非常简单,直接调用函数即可
class Solution(object):
def replaceSpace(self, s):
"""
:type s: str
:rtype: str
"""
return s.replace(" ","%20")
C++ 实现版本1
class Solution {
public:
string replaceSpace(string s) {
if (s.length()==0) {
return s;
}
int originalLength = s.size()-1;
int numberOfBlank = 0;
int i = 0;
for (auto c : s) {
if (c == ' ') ++numberOfBlank;;
}
/*newLength 为把空格替换为'/20'之后的长度*/
int newLength = originalLength + numberOfBlank * 2;
s += string(numberOfBlank * 2, ' ');
int indexOfOriginal = originalLength;
int indexOfNew = newLength;
while (indexOfOriginal >= 0 && indexOfNew > indexOfOriginal)
{
if (s[indexOfOriginal] == ' ')
{
s[indexOfNew--] = '0';
s[indexOfNew--] = '2';
s[indexOfNew--] = '%';
}
else
{
s[indexOfNew--] = s[indexOfOriginal];
}
indexOfOriginal--;
}
return s;
}
};
C++实现版本2
class Solution {
public:
string replaceSpace(string s) {
string res;
for (auto c : s) {
if (c == ' ')
res += "%20";
else
res += c;
}
return res;
}
};