剑指offer:替换空格

替换空格

请实现一个函数,把字符串 s 中的每个空格替换成"%20"。

示例 1:
输入:s = “We are happy.”
输出:“We%20are%20happy.”

限制:
0 <= s 的长度 <= 10000

来源:力扣(LeetCode)–替换空格

解题

方法一:内置函数

使用python内置函数 replace()

  1. 描述
    str.replace(old, new[, max])
    Python replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
  2. 参数
    old – 将被替换的子字符串。
    new – 新字符串,用于替换old子字符串。
    max – 可选字符串, 替换不超过 max 次
  3. 返回值
    返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次。
class Solution:
    def replaceSpace(self, s: str) -> str:
        # 方法一:
        return s.replace(" ", "%20")

方法二:遍历添加

创建一个新的字符串,依次匹配字符,如果字符为空,则替换并放入新字符串中;如果字符不为空则直接放入新字符串中。

# python
class Solution:
    def replaceSpace(self, s: str) -> str:
		# 方法二:
		str_ = ''
        for i in s:
            if i == ' ':
                i ='%20'
            str_ = str_ + i
        return str_
// java
class Solution {
    public String replaceSpace(String s) {
        StringBuilder res = new StringBuilder();
        for(Character c : s.toCharArray())
        {
            if(c == ' ') res.append("%20");
            else res.append(c);
        }
        return res.toString();
    }
}

复杂度分析:
时间复杂度: O ( N ) O(N) O(N)
空间复杂度: O ( N ) O(N) O(N),新建字符串使用了线性大小的额外空间。

Java、python中的字符串

在 Python 和 Java 等语言中,字符串都被设计成不可变的类型,即无法直接修改字符串的某一位字符,需要新建一个字符串实现。

添加字符串
java+、StringBuilder.append()
python+、list.append() and ’ '.join(list)+适用于较少字符串;list、join()适用于较多字符串的拼接

参考文章:

  1. leetcode题解
  2. Java 字符串拼接效率分析及最佳实践
  3. python字符串追加字符_Python字符串追加
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值