题解 | #替换空格#

替换空格

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

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @return string字符串
     */

     //解题思路: 扩充空格  从后向前填写 
     // 代码随想录 
    string replaceSpace(string s) 
    { //扩充: 计算需要扩充多少
        int count=0; //统计空格个数
        int sOldSize=s.size();
        for(int i=0;i<s.size();i++)
        {
            if(s[i]==' ')
            {count++;}
        }

 // 扩充字符串s的大小,也就是每个空格替换成"%20"之后的大小
        s.resize(s.size()+count*2);
        int sNewSize=s.size();

        for(int i=sNewSize-1,j=sOldSize-1;j<i;i--,j--)
        {
            if(s[j]!=' ')
            {s[i]=s[j];}
            else {
            {s[i]='0';
            s[i-1]='2';
            s[i-2]='%';
            i-=2;}
            }
        }

        return s;
    }
};
  • 时间复杂度:O(n)
  • 空间复杂度:O(1)

学习自 : 代码随想录-替换空格

内有详解

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务