美文网首页技术干货
剑指offer之Python替换空格

剑指offer之Python替换空格

作者: a295ff153449 | 来源:发表于2020-01-10 10:56 被阅读0次

    请实现一个函数,将一个字符串中的每个空格替换成“%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替换空格

    相关文章

      网友评论

        本文标题:剑指offer之Python替换空格

        本文链接:https://www.haomeiwen.com/subject/vcjpactx.html