美文网首页剑指offer
面试题05.替换空格

面试题05.替换空格

作者: 人一己千 | 来源:发表于2020-03-04 18:19 被阅读0次

    题目

    请实现一个函数,把字符串 s 中的每个空格替换成"%20"。

    示例 1:

    输入:s = "We are happy."
    输出:"We%20are%20happy."

    限制:

    0 <= s 的长度 <= 10000

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    解法

    这个题目在python中做意义不大的感觉。
    这个题目考察的是尽量少的移动字符,基于原有的字符串进行移动。
    在python里面直接算一下加‘%20’之后有多少个字符,开辟一个新的字符串感觉都要好些。
    代码:

    class Solution:
        def replaceSpace(self, s: str) -> str:
            res = []
            
            space_num = 0
            for c in s :
                if c == " ":
                    space_num += 1
            res = [" "]* (space_num*2 + len(s))
            
            j = 0
            for i in range(len(s)):
                if s[i] == ' ':
                    res[j] = '%'
                    res[j+1] = '2'
                    res[j+2] = '0'
                    j += 3
                else:
                    res[j] = s[i]
                    j += 1
            
            
            return ''.join(res)
    

    总结

    这个题目本来不想写的,反正写了就一起顺便加上吧。
    当然也可以在python中用双指针的办法。

    相关文章

      网友评论

        本文标题:面试题05.替换空格

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