操作系统寒武纪 - 会让企业IT高兴吗?
678
2022-11-08
请实现一个函数,将一个字符串中的空格替换成
problem
请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
code
class Solution {public: void replaceSpace(char *str,int length) { int blackNum=0; int old_length=0; for(int i=0;str[i]!='\0';i++){ if(str[i]==' '){ blackNum++; } old_length++; } int new_length=old_length+2*blackNum; if(new_length==old_length) return; int p1=old_length-1; int p2=new_length-1; str[new_length]='\0'; while(p1>=0&&p2>=p1){ if(str[p1]==' '){ str[p2--]='0'; str[p2--]='2'; str[p2--]='%'; }else{ str[p2--]=str[p1]; p1--; } } }};
思路是遍历字符串,找到有多少空格,然后再计算新字符串的长度。我们从原字符串和新字符串最后一个字符开始逆向遍历,遇到老字符串的空格,相应的在新字符串上就用%20来代替。
参考文献
[1].题目:请实现一个函数,将一个字符串中的空格替换成“%20”
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~