请实现一个函数,把字符串 s
中的每个空格替换成"%20"。
示例:
输入:s = "We are happy."
输出:"We%20are%20happy."
解题思路:
- 字符串由字符组成,首先将字符串转化成字符数组,然后遍历字符数组。
- 如果需要将空格替换成其他字符串,就不能使用数组的下标直接替换的方式,因为被替换的内容不是一个字符。
- 使用StringBuilder作为中间存储的数据结构,判断每个字符是否是空格,如果是,则向StringBuilder追加"%20",如果不是,则向StringBuilder追加当前字符。
package Algorithm;
public class Solution {
public static void main(String[] args) {
System.out.println(replaceSpace("We are happy."));
}
public static String replaceSpace(String s) {
char[] chars = s.toCharArray();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < chars.length; i++) {
if (chars[i] == ' ') {
sb.append("%20");
} else {
sb.append(chars[i]);
}
}
return sb.toString();
}
}
复杂度分析:
- 时间复杂度:遍历使用O(N),每轮添加修改字符使用O(1)
- 空间复杂度:StringBuilder都使用了线性的额外空间