题解 | #替换空格#

替换空格

http://www.nowcoder.com/practice/0e26e5551f2b489b9f58bc83aa4b6c68

题目的主要信息:
  • 将一个字符串s中的每个空格替换成“%20”
  • 保证字符串中的字符为大写英文字母、小写英文字母和空格中的一种
举一反三:

学习完本题的思路你可以解决如下题目:

JZ73. 翻转单词序列

方法:字符串截取相加(推荐使用)

具体做法:

我们可以用下标遍历字符串,每次检查下标所在位置的字符是否为空格,如果不是空格,下标继续往后,如果是空格则调用substr函数将字符串从空格前后截断,然后中间添加"%20"后相连即可。

图示:

图片说明

Java实现代码:

import java.util.*;
public class Solution {
    public String replaceSpace (String s) {
        StringBuilder str = new StringBuilder();
        for(int i = 0; i < s.length(); i++){
            if(s.charAt(i) == ' ')
                str.append("%20");
            else
                str.append(s.charAt(i));
        }
        return str.toString();
    }
}

C++实现代码

class Solution {
public:
    string replaceSpace(string s) {
        string res = "";
        //遍历字符串
        for(int i = 0; i < s.length(); i++){ 
            //非空格直接复制
            if(s[i] != ' ') 
                res += s[i];
            //空格就替换
            else 
                res += "%20"; 
        }
        return res;
    }
};

Python实现代码:

class Solution:
    def replaceSpace(self , s: str) -> str:
        res = ""
        #遍历字符串
        for i in s:
            #非空格直接复制
            if i != ' ': 
                res += i
            #空格就替换
            else:
                res += "%20" 
        return res

复杂度分析:

  • 时间复杂度:O(n)O(n),其中nn为字符串长度,遍历一次字符串
  • 空间复杂度:O(1)O(1),无额外辅助空间使用,拼接的字符串属于必要空间
全部评论

相关推荐

乐观的打工人前程似锦:怎么说呢🤔️,学历够,专业技能看起来也有那么回事,就是项目会不会差点?dji更喜欢较为复杂的工程落地的项目吧?如果有一些title的项目就更好了。有实习也是加分项,搞过神经网络应该也是加分项。进面应该可以,还是要看技术过硬
点赞 评论 收藏
分享
02-08 20:56
已编辑
南京工业大学 Java
在等offer的比尔很洒脱:我也是在实习,项目先不说,感觉有点点小熟悉,但是我有点疑问,这第一个实习,公司真的让实习生去部署搭建和引入mq之类的吗,是不是有点过于信任了,我实习过的两个公司都是人家正式早搭好了,根本摸不到部署搭建的
点赞 评论 收藏
分享
评论
11
4
分享

创作者周榜

更多
牛客网
牛客企业服务