剑指offer Python版 - 替换空格

题目描述

请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

问题1:替换字符串,是在原来的字符串上做替换,还是可以重新定义一个字符串做替换:

问题2:从前往后替换和从后往前替换一样吗?


方法1:

从左往右遍历元素,若当前元素为空格,则插入“%20”, 并将字符串长度增加3. 时间复杂度O(n * n).

# -*- coding:utf-8 -*-
class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        # write code here
        position = 0
        while position < len(s):
            if s[position] == ' ':
                s = s[:position] + '%20' + s[position + 1:]
                position += 3
            else:
                position += 1
        return s

运行时间:23ms

占用内存:5736k


方法2:

时间复杂度O(n * n)
# -*- coding:utf-8 -*-
class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        # write code here
        s = list(s)
        for i in range(len(s)):
            if s[i] == ' ':
                s[i] = '%20'
        return ''.join(s)

运行时间:23ms

占用内存:5736k

猜你喜欢

转载自blog.csdn.net/dake1994/article/details/79828630