码迷,mamicode.com
首页 > 其他好文 > 详细

替换空格

时间:2020-06-23 13:23:07      阅读:56      评论:0      收藏:0      [点我收藏+]

标签:如图所示   分析   display   app   字符串   loading   lazy   图片   时间   

题目:请实现一个函数,将一个字符串中的每个空格替换成“%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) 没有开辟空间

替换空格

标签:如图所示   分析   display   app   字符串   loading   lazy   图片   时间   

原文地址:https://www.cnblogs.com/lf6688/p/13181501.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!