替换空格
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) 没有开辟空间
以上是关于替换空格的主要内容,如果未能解决你的问题,请参考以下文章