首页 > 其他 > 详细

剑指 Offer 05. 替换空格

时间:2021-06-20 14:58:23      阅读:12      评论:0      收藏:0      [点我收藏+]
>请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 这个题需要注意的是在string里面把一个字符换成三个字符,需要调整size的大小; 1.在原有参数上改的话,需要对size进行增容,判断‘ ’个数进行增容; ```cpp string replaceSpace(string s) { int count_e=0,len=s.size(); for(auto e:s){ if(e==‘ ‘) count_e++; } s.resize(len+2*count_e); for(int i=len-1,j=s.size()-1;i>=0;i--,j--){ if(s[i]==‘ ‘){ s[j]=‘0‘; s[j-1]=‘2‘; s[j-2]=‘%‘; j-=2; } else s[j]=s[i]; } return s; ``` 2.新建一个string 的话,将原来参数的值插入,不用管增容,只要碰到‘ ’时插入“%20”即可; ```cpp string replaceSpace(string s) { std::string s_copy; for(auto e:s){ if(e==‘ ‘){ s_copy.push_back(‘%‘); s_copy.push_back(‘2‘); s_copy.push_back(‘0‘); }else s_copy.push_back(e); } return s_copy; ```

剑指 Offer 05. 替换空格

原文:https://blog.51cto.com/u_14982125/2928265

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!