替换空格

Posted lf6688

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了替换空格相关的知识,希望对你有一定的参考价值。

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

1. 题目难度:四星

2. 考察点:字符串

 

方法:逆向遍历

1. 分析:由于函数返回为void,说明此题不能另外开辟数组,需要in-place操作。我们知道字符串的遍历无非是从左到右和从右到左两种。
    1)如果从左到右,会发现如果遇到空格,会将原来的字符覆盖。于是,此方法不行。
    2)那么就考虑从右向左,遇到空格,就填充“20%“,否则将原字符移动应该待的位置。

2. 具体过程如图所示:

     length为原字符串最后一个字符的位置,new_lngth为结果字符串的最后一个位置

技术图片

 

      如果str[length]不等于空格,就复制,然后指针分别左移一位。

技术图片

 

       如果str[length]等于空格,就填充“20%”

技术图片

 

       一直进行上述步骤,直到字符串遍历完毕

技术图片

 

3. 复杂度分析
    时间复杂度:O(length) 只遍历了一遍字符串
    空间复杂度:O(1) 没有开辟空间

以上是关于替换空格的主要内容,如果未能解决你的问题,请参考以下文章

Jquery的序列化方法为啥要把空格替换成加号

《剑指Offer》替换空格(将字符串中的空格替换为%20)

UltraEdit编辑器里面,如何把 回车换行符 替换成 空格 ?谢谢

替换空格

如何替换掉字符串里的空格?

如何替换掉字符串里的空格?