剑指offer笔记(2):替换空格

题目描述

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

分析

本题中需要我们将空格字符替换成"%20"的形式,那么我们首先需要注意的店便是:这是一个字符串,那么我们自然而然会去想到字符串的方法:

这里推荐去看脚本之家的Python 字符串操作方法大全

我也在这里总结一下,因为有些我也快忘了,画了一个简易版的思维导图:

在这里插入图片描述

虽然并没有总结全,但那么本题中我用到的方法就是画红框的部分。

思路一:直接replace替换

既然题目给的是字符串,那么我们可以用replace直接替换,replace的作用可以直接返回一个字符串,正好满足于要求:

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

思路二:分割成列表,连接成字符串

因为字符串是不可变类型,那么我们想要在其本身通过添加或者赋值将某一部分改变都是行不通的,所以需要有一个中间件,这里有两种,一种是通过另一个空的字符串,原来的拆成单个字符后,可以用直接赋值的方式,加进新字符串里。另外一种就是通过列表来实现,split和join组合起来。

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

另外一种就是通过列表了:

class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        s = list(s)
        for i in range(len(s)):
            if s[i]==" ":
                s[i]="%20"
        return "".join(s)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

submarineas

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值