美文网首页剑指offer java版
【剑指offer】问题5:替换空格

【剑指offer】问题5:替换空格

作者: 蛋花汤汤 | 来源:发表于2019-02-13 20:26 被阅读0次

    题目:请实现一个函数,把字符串的每个空格替换成"%20"。例如,输入"We are happy.",则输出"We%20are%20happy."。

    代码后面奉上^_^
    

    大概思路就是先遍历一遍数组找出空格的个数,假设为k。那么替换后的长度为n+2k。从后往前遍历旧的内容,遇到空格就替换,从后往前往新长度中赋值(不存在覆盖问题)即可。
    此题比较简单,需要注意的是一些细节问题:

    1. 如果从前往后扫描数组对空格进行替换,为了不覆盖后面内容,势必要先对后面内容进行移位以留足多出的两个字符(%20相较于空格)的位置。对于有n个数据的数组来说,每遇到一个空格,必须移动后面所有的字符,对于有n个空格的数组,时间复杂度就是O(n2)。相率不高。
    2. 如果再开辟一个新数组来存储新数据,虽不用移位,但是却浪费了额外的空间(O(n))。

    相关文章

      网友评论

        本文标题:【剑指offer】问题5:替换空格

        本文链接:https://www.haomeiwen.com/subject/nxhjeqtx.html