题解 | #替换空格#

替换空格

http://www.nowcoder.com/practice/0e26e5551f2b489b9f58bc83aa4b6c68

替换空格
首先我们指导‘%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());
    }
};
全部评论

相关推荐

不愿透露姓名的神秘牛友
06-26 14:50
人力小鱼姐:有后面墨迹那两句的时间问题早回答完了
点赞 评论 收藏
分享
废物一个0offer:认真的吗二本本科找人工智能岗位
点赞 评论 收藏
分享
牛客38347925...:9,2学生暑期实习失利开始投小厂,给这群人整自信了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务