技术干货

剑指offer之Python替换空格

2020-01-10  本文已影响0人  a295ff153449

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

方案一:

思路: 先定义一个变量,来存储字符串中空格的数量,定义一个新数组new_array来存储(存储的是原字符串长度和2倍空格数量长度之和的空格),

然后遍历源字符串,最后进行赋值,如果源字符串当前originStr[i] == ' ',则分别对new_array[j]、new_array[j + 1]、new_array[j + 2]进行赋值,

若originStr[i]不为空,则将源字符串值赋给new_array[j]即可。

实现代码如下:

def replaceSpace(self, originStr):
    s_len = len(originStr)
    # print(s_len)
    space_count = 0
    for i in originStr:
        if i == ' ':
            space_count += 1
    s_len += 2 * space_count
    new_array = [' '] * s_len
    print(new_array)
    print(len(new_array))
    j = 0
    for i in range(len(originStr)):
        if originStr[i] == ' ':
            new_array[j] = '%'
            new_array[j + 1] = '2'
            new_array[j + 2] = '0'
            j += 3

        else:
            new_array[j] = originStr[i]
            j += 1

    return ''.join(new_array)
print(replaceSpace(" ", 'We Are Happy!'))

方案二:
思路:使用系统函数直接进行替换即可。

直接替换

def replaceSpace(self,s):
    return s.replace(" ","%20");
print(replaceSpace(" ", 'We Are Happy!'))

方案三:
思路:直接使用正则进行替换。

import re
def replaceSpace(self, s):
    s = re.sub(r" ", "%20", s)
    return s

print(replaceSpace(" ", 'We Are Happy!'))

以上即为python的不同解决方式,如有其他解决方式,可以留言一起学习哦。


剑指offer之Python替换空格
上一篇 下一篇

猜你喜欢

热点阅读