JZ2 替换空格

本文介绍了一种将字符串中的空格替换为'%20'的方法,包括逐步查找替换和使用StringBuilder。讨论了不同实现的时间复杂度,均为O(n),并提供了Java的解决方案。对于空间复杂度,StringBuilder需要额外的空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

描述

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

示例1

输入:"We Are Happy"

返回值:"We%20Are%20Happy"

初步想法还是逐步查找,查找到空值的字符时替换成%20,时间复杂度为O(n)。

str = "We are happy"
a = len(str)
for i in range(a):
    str1 = str.replace(" ", "%20"); #从i位置开始的1个字符替换为 % 20
print(str1)

使用Class Solution:

class Solution:
    def replaceSpace(self , s ):
        for i in range(len(s)):
            s = s.replace(" ", "%20"); #从i位置开始的1个字符替换为 % 20
        return s

讨论组大多都是关于Java的解题,我没接触过,所以只粘贴上精华题解。

使用StringBuilder

    public String replaceSpace(String s) {
        StringBuilder stringBuilder = new StringBuilder();
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) == ' ')
                stringBuilder.append("%20");
            else
                stringBuilder.append(s.charAt(i));
        }
        return stringBuilder.toString();
    }

时间复杂度:O(n),所有字符都遍历一遍
空间复杂度:O(n),StringBuilder需要的空间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值