剑指Offer-替换空格-Python

替换空格

题目描述:

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

思路:
首先要明白:特殊字符的转换原理(题目已经告诉)

C/C#中 每个字符串都以’\0’结尾,实际长度就是比字符数多一个字节

因此字符串会变长,所以两种办法:
1.在原来字符串上进行替换,就有可能覆盖修改该字符串后面的内存
2.创建新的字符串进行替换,需要更多的内存

实现:
在原来字符串进行替换:
有问题解决不了——python无法改变字符串长度,如果转为列表再转回来,会占用内存吗?


在新的字符串上替换:

# -*- coding:utf-8 -*-
class Solution:
    # s 源字符串
    def replaceSpace(self, s):
       
        new_s = ''
        for j in s:
            if j == ' ':
                new_s=new_s + '%20'
            else:
                new_s=new_s + j
        return new_s

偷懒的方法:

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

遇到的问题:
python中字符串不可以修改!!!python字符串的修改方法(https://www.cnblogs.com/huangbiquan/p/7783057.html)

猜你喜欢

转载自blog.csdn.net/weixin_40314385/article/details/87889304