题目描述:
请实现一个函数,将一个字符串s中的每个空格替换成“%20”。
例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
**题解1:使用辅助字符串
代码
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @return string字符串
*/
string replaceSpace(string s) {
// write code here
string str;
for(int i =0;i<s.size();i++){
if(s[i] ==' ')
str+="%20";
else
str+=s[i];
}
return str;
}
};
题解2:不使用辅助字符串
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @return string字符串
*/
string replaceSpace(string s) {
// write code here
int len = s.size();
for (int i = 0; i < len; i++) {
if (s[i] == ' ')
s += " ";//字符串末尾增加三个字符
}
int i = len - 1;//s[i]指向原来的字符串末尾
int j = s.size() - 1;//s[j]指向新字符串末尾
for (i; i >= 0; i--) {
if (s[i] == ' ') {
s[j--] = '0';//替换字符同时向前移动指针
s[j--] = '2';
s[j--] = '%';
}
else {
s[j--] = s[i];
}
}
return s;
}
};