题意分析

  • 这个题目的意思很简单,就是将一个字符串里面的空白字符替换成%20

图片说明

解法分析

解法一 C++版

  • 我们直接使用C++的string进行处理。我们发现C++里面有一个string还是很好用的,它重载了+=运算符。我们可以直接通过遍历整个字符串进行处理。

  • 代码如下

    • 我们需要对长度为n的字符串遍历一次,时间复杂度为O(n),
    • 需要存储长度为n的字符串,空间复杂度为O(n)
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @return string字符串
     */
    string replaceSpace(string s) {
        // write code here
        string ans="";
        // 直接对字符串进行遍历
        for(auto x:s){
            // 对空白字符进行替换
            if(x==' '){
                ans+="%20";
            // 否则不进行处理
            }else{
                ans+=x;
            }
        }
        return ans;
    }
};

解法二 Python的实现

  • python的写法和C++的写法类似,可以参考一下。
  • 代码如下
    • 需要对长度为n的字符串进行遍历,时间复杂度为O(n)
    • 需要存储长度为n的字符串,空间复杂度为O(n)
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param s string字符串 
# @return string字符串
#
class Solution:
    def replaceSpace(self , s ):
        # write code here
        # 定义一个空的列表
        ans=[]
        for x in s:
            # 判断为空的情况
            if x==' ':
                ans.append('%20')
            else:
                ans.append(x)
        return "".join(ans)  # 将这个列表转化为字符串