《剑指offer》第2题:替换空格

1 题目描述、要求

题目描述:
  请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
题目要求:
  时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M

2 分析及题解

 2.1 方法一:内置方法str.replace()

  时间复杂度:O(n)

'''
class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        # write code here
        return s.replace(" ","%20")

 2.2 暴力遍历替换(借助新字符串)

  遍历遇到空格替换成%20,将此时遍历元素追加到新字符串
  时间复杂度 O(n)

class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        # write code here
        newS = ""
        for i in s:
            if i == " ":
                i = "%20"
            newS += i
        return newS

 2.3 方法三:字符串分割+拼接

  根据空格分割,用%20连接
  时间复杂度O(n)

class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        # write code here
        return "%20".join(s.split(" "))
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章