替换空格
首先我们指导‘%20’包含3个字符,也就意味着按字符添加需要添加3次。
遍历字符串,找到空格字符,一个字符替换3个字符,会导致字符串长度变化,后面的字符要进行移位,很麻烦。
考虑申请一个可变数组,将非空格字符放入,当遇到空格字符,将‘%’,‘2’,‘0’放入,然后再将其转化为字符串。
C++:vector与string转化。
vector vcBuf;
string stBuf("Hello DaMao!!!");
vcBuf.resize(stBuf.size());
vcBuf.assign(stBuf.begin(), stBuf.end());
stBuf.clear();
stBuf.assign(vcBuf.begin(), vcBuf.end());
代码如下:
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @return string字符串
*/
string replaceSpace(string s) {
int l = s.size();
vector<char> st;
string st1;
for(int i=0;i<l;i++){
if(s[i] != ' ')
st.push_back(s[i]);
else{
st.push_back('%');
st.push_back('2');
st.push_back('0');
}
}
return st1.assign(st.begin(),st.end());
}
};
京公网安备 11010502036488号