剑指Offer - 替换空格 (C/C++, Java, Python 2.x 实现)

本文介绍了一种将字符串中的空格替换为“%20”的方法,并提供了C/C++、Java及Python三种语言的实现代码。该方法适用于网页地址编码等场景。

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

 

题目描述

请实现一个函数,将一个字符串中的空格替换成“%20”。

例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy.

 

思路:需要借助一个新的字符串,构建时将原字符串的空格全部换成“%20”,切勿大量移动原字符串中的元素

python 有 split 函数 和 join 函数,一句代码就能搞定

 

C/C++        运行时间:8ms    占用内存:952k

class Solution
{
public:
	void replaceSpace(char *str,int length)
    {
        string mid = "";    //暂存一下
        for(int i=0; i<length; ++i)
        {
            if(str[i]==' ')
                mid += "%20";
            else
                mid += str[i];
        }
        for(int i=0; i<mid.length(); ++i)
        {
            str[i] = mid[i];
        }

	}
};

 

Java    运行时间:17ms    占用内存:9616k

 

public class Solution
{
    public String replaceSpace(StringBuffer str)
    {
    	StringBuffer mid = new StringBuffer();
        for(int i=0; i<str.length(); ++i)
        {
            if(str.charAt(i)==' ')    //charAt()取下标元素
                mid.append("%20");    //append()在尾部追加
            else
                mid.append(str.charAt(i));
        }
        return mid.toString();    //转换成String类型
    }
}

 

Python    运行时间:25ms    占用内存:5752k

 

# -*- coding:utf-8 -*-
class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        # write code here
        ans = ""
        for i in range(len(s)):    #len(s)返回整型元素,不能对int型遍历
            if s[i]==' ':
                ans += "%20"
            else:
                ans += s[i]
        return ans

Python 解法2:split 和 join 函数

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值