首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

空格替换

1.空格替换 来源: lintcode-空格替换 问题描述 描述 设计一种方法,将一个字符串中的所有空格替换成 %20 。...你的程序还需要返回被替换后的字符串的长度。...样例 对于字符串”Mr John Smith”, 长度为 13 替换空格之后,参数中的字符串需要变为”Mr%20John%20Smith”,并且把新长度 17 作为结果返回。...挑战 在原字符串(字符数组)中完成替换,不适用额外空间 解决思路 这道题的暴躁版本呢,就是依次遍历,当遇到空格时,将空格后的字符依次后移两位,这样就腾出了3个空位,插入%20即可。...以i遍历原字符串,当i位置字符不等于空格,令j位置=i位置,如果i位置为空格,则给j,j-1,j-2位置依次放置0,2,%。 当i<0时停止循环。

2.2K50
您找到你想要的搜索结果了吗?
是的
没有找到

替换空格

看到这个题目,我们首先应该想到的是原来一个空格字符,替换之后变成'%'、'2''0'这3个字符,因此字符串会变长。如果是在原来的字符串上做替换,那么就有可能覆盖修改在该字符串后面的内存。...我们可以先遍历一次字符串,这样就能统计出字符串中空格的总数,并可以由此计算出替换之后的字符串的总长度。每替换一个空格,长度增加2,因此替换以后字符串的长度等于原来的长度加上2乘以空格数目。...这个字符串的长度是14(包括结尾符号'\0'),里面有两个空格,因此替换之后字符串的长度是18。       我们从字符串的后面开始复制替换。首先准备两个指针,P1P2。...我们接着向前复制,直到碰到第二个空格(如图(d)所示)。上一次一样,我们再把P1向前移动1格,并把P2向前移动3格插入"%20"(如图(e)所示)。...此时P1P2指向同一位置,表明所有空格都已经替换完毕。 ? 注:图中带有阴影的区域表示被移动的字符。(a)把第一个指针指向字符串的末尾,把第二个指针指向替换之后的字符串的末尾。

2.8K60

牛客网-替换空格

题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。...题目是替换空格,那就是在原来的基础上进行替换,而不是重新组合。 来自比特蛋哥: //字符串操作问题 //解决思路: //虽然是替换问题,但是生成的字符串整体变长了....//因替换内容比被替换内容长,所以,一定涉及到字符串中字符的移动问题 //移动方向一定是向后移动,所以现在的问题无非是移动多少的问题 //因为是 ' ' -> "%20",是1换3,所以可以先统计原字符串中空格的个数...//当然,C++Java都有很多容器,也可以从前往后通过开辟空间来进行解决。也就是使用空间来换取时间。...if(str.charAt(old_end)==' '){ //就从当前空格的位置往后移动进行替换

82420
领券