python解决替换空格问题

对于字符串中,利用指定字符替换字符串中的所有空格,使用合适的方法来避免多次移动字符的操作,考虑使用python的内置方法来简便的解决该问题,可以更加了解到python的便捷。

对于给定一个内部含有空格字符的字符串input_str,使用replace字符来替换字符串中的所有空格。

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

对于该问题,如果假设给定的replace变量长度是n,最直接的想法就是从前往后遍历字符串,然后如果遇到了空格字符,就将空格之后的字符向后移动n-1位,将空格字符替换成为replace,这种做法的问题在于每次发现一个空格就需要将剩余字符向后移动,需要多次移动字符,这就产生的时间复杂度较高的问题,不是一种较为理想的做法,由于从前向后的比阿里,才需要向后移动字符,所以考虑从后往前更新字符串。

如果说已知了空格的数量,就可以计算出替换后字符串的长度,定义一个与之长度相等的结果列表,然后从后往前向结果列表中进行字符填充,这种做法只需要遍历字符串中的每个字符一次,但是需要重新再开辟一块内存空间,用来保存结果列表。该部分的python实现如下:

class solution():
    def func(self,input_str,replace):
        replace_len=len(replace)
        count=0
        for i in input_str:
            if i==' ':
                count+=1
        new_len=len(input_str)+(replace_len-1)*count
        new_string=[None for i in range(new_len)]
        point_new=new_len-1
        point_origin=len(input_str)-1
        while point_origin>=0 and point_origin<=point_new:
            if input_str[point_origin]==' ':
                new_string[point_new-replace_len+1:point_new+1]=replace
                point_new-=replace_len
            else:
                new_string[point_new]=input_str[point_origin]
                point_new-=1
            point_origin-=1
        return ''.join(new_string)

但是对于python的内置函数来解决该问题,就非常方便,直接将给定字符串按照空格进行分隔形成列表,然后使用replace字符串来对列表中的字符进行拼接,返回即可。代码如下:


list=imnput_str.split(' ') 
return replace.join(list)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值