【剑指Offer第二题】替换空格
admin
2023-02-14 19:40:02
0

题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

*注:设给定字符串长度为n。语言:C++


解法1:正向遍历,遇到空格即进行替换,并将其后的元素相应后移。

void replaceSpace(char *str,int length) {
        if(length <= 0)
            return;
        char rep[] = "%20";
        char *out;
        int cnt = 0;
        for(int i = 0; i < length; ++i)
        {
            if(str[i] == ' ')
            {
                for(int j = length+1; j > i; --j)
                    str[j] = str[j-2];
                length += 2;
                strncpy(str+i, rep, 3);
            }
        }
    }

时间复杂度:O(n^2),空间复杂度:O(1)


解法2:正向遍历计算空格数,再反向遍历进行空格替换。

void replaceSpace(char *str,int length) {
        if(length <= 0)
            return;
        int cnt = 0;
        for(int i = 0; i < length; ++i)
        {
            if(str[i] == ' ')
                cnt += 2;
        }
        for(int i = length - 1; i >= 0; --i)
        {
            if(str[i] != ' ')
                str[i + cnt] = str[i];
            else
            {
                cnt -= 2;
                str[i + cnt] = '%';
                str[i + cnt + 1] = '2';
                str[i + cnt + 2] = '0';
            }
        }
    }

时间复杂度:O(n),空间复杂度:O(1)

相关内容

热门资讯

“从造王者沦为票房毒药,5月多... 【文/观察者网 熊超然】美国总统特朗普在共和党内长期扮演“造王者”的角色,但随着年底的中期选举日益临...
风声丨为完成指标,引诱少年吸毒... 作者丨陈碧中国政法大学教授近日,媒体报道了一起“诱人犯罪”案。南京一派出所副所长马某犯欺骗他人吸毒罪...
女游客体验景区悬崖秋千项目高空... 极目新闻记者 谢茂5月5日,多位网友发视频称,一处景区悬崖秋千项目发生事故,致一名女游客受伤。网友发...
凤凰女记者战地日记丨广场之内和... 【编者按】这是凤凰卫视驻伊朗记者李睿的战地日记。她身处德黑兰,既是战争的亲历者,也是观察者。在她的日...
伊朗两枚导弹击中美国军舰 伊朗法尔斯通讯社5月4日报道,两枚导弹击中了一艘美国海军舰艇。法尔斯通讯社称,这艘舰艇今日在贾斯克附...
罗晴秋:悦读,让张家界更硬核起... 4月21日晚,悟空研究院院长罗晴秋应邀主持2026悦读共创大会暨华人国学大典丙午春集闭门交流会。4月...
伊朗外长启程访华 据凤凰卫视报道,伊朗外交部5日宣布,伊朗外长阿拉格齐当天启程,到中国北京展开访问。伊朗外交部在其电报...
女子体验瀑布秋千坠亡,四川华蓥... 情况通报5月3日下午,华蓥市玛琉岩探险公园发生一起人员伤亡事故,游客刘某某(女)在体验瀑布秋千项目时...
凤凰直击浏阳烟花厂爆炸:3公里... 湖南长沙浏阳市华盛烟花制造燃放有限公司5月4日发生爆炸,截至目前已造成26人遇难、61人受伤。凤凰卫...
涵盖6大类花品及10种特色花 ... 4月27日,在文化和旅游部主办的2026年全国“五一”文化和旅游消费周与首届中国新文创市集媒体推介会...