字符串-替换字符串中空格

        每日一题,提升自己。今天分享一道关于替换字符串中空格的题目,且听我细细道来。

字符串 - 替换字符串中空格

1. 题目描述

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

示例:

输入:”We are happy.”

输出:”We%20are%20happy.”

提示:

0 <= s 的长度 <= 10000

2. 解题思路

        看到这个题目是不是觉得,这么简单也算是题?直接调用一首库函数,简单粗暴。当然了,题目肯定是不希望我们这么做的,所以我们还是自己动手换个方法实现一下比较好。最简单的思路就是增加的新的字符串,遍历原来的字符串,如果是非空格则将原来的字符直接拼接到新字符串后面,如果是空格则将%20拼接到新字符串后面。

复杂度:

  • 时间复杂度:O(n)。
  • 空间复杂度:O(n)。

3. 算法流程

  1. 创建新的字符串。
  2. 遍历原字符串,判断当前字符是否是空格,是空格则将%20拼接到新字符串后面。
  3. 不是空格则直接拼接到新字符串后面。
  4. 直到遍历完整个字符串,返回新字符串。

4. 代码实现

Java代码实现如下:

1
2
3
4
5
6
7
8
9
10
11
12
public static String replaceSpace(String str){
StringBuilder sb = new StringBuilder();
for (int i=0;i<str.length();i++){
char c = str.charAt(i);
if (c == ' '){
sb.append("%20");
}else {
sb.append(c);
}
}
return sb.toString();
}