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

题目描述

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


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


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

猜你喜欢

转载自blog.csdn.net/m0_38024592/article/details/80424612