剑指offer

面试题05.替换空格

2020-03-04  本文已影响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中用双指针的办法。

上一篇下一篇

猜你喜欢

热点阅读