替换空格[by Python]

题目:

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

1.使用python自带的replace方法:

# -*- coding:utf-8 -*-
# -*- python3.6.6 -*-
# -*- JluTiger  -*-
# -*- 替换空格 -*-
class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        # write code here
        return s.replace(" ","%20")

if __name__=="__main__":
    s="we are famliy"
    answer = Solution().replaceSpace(s)
    print(answer)

2.对空格使用split,再使用“%20”连接:

class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        # write code here
        return '%20'.join(s.split(' '))
if __name__=="__main__":
    s="we are famliy"
    answer = Solution().replaceSpace(s)
    print(answer)

3.由于替换空格后,字符串长度需要增大。先扫描空格个数,计算字符串应有的长度,从后向前一个个字符复制(需要两个指针)。这样避免了替换空格后,需要移动的操作:

class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        # write code here
        #计算有多少个空格
        num_space = 0
        for i in s:
            if i == ' ':
                num_space += 1
        #新的字符串的长度
        new_length = len(s) + 2 * num_space
        index_origin = len(s) - 1
        index_new = new_length - 1
        #新的字符串
        new_string = [None for i in range(new_length)]
        #按照从后往前的顺序将%20填入
        while index_origin >= 0 & (index_new > index_origin):
            if s[index_origin] == ' ':
                new_string[index_new] = '0'
                index_new -= 1
                new_string[index_new] = '2'
                index_new -= 1
                new_string[index_new] = '%'
                index_new -= 1
            else:
                new_string[index_new] = s[index_origin]
                index_new -= 1
            index_origin -= 1
        return ''.join(new_string)

if __name__=="__main__":
    s="we are famliy"
    answer = Solution().replaceSpace(s)
    print(answer)

猜你喜欢

转载自www.cnblogs.com/jlutiger/p/9908431.html