题目
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
输入:s = "We are happy."
输出:"We%20are%20happy."
限制:
- 0 <= s 的长度 <= 10000
解题
解法1
主要思路:直接使用replaceAll方法,因为本质是正则表达式,因此比较耗时间;
时间复杂度:O(N) N为字符串的长度
空间复杂度:O(N) N为字符串的长度
public String replaceSpace(String s) {
if (s == null) return null;
return s.replaceAll(" ", "%20");
}
解法2
主要思路:因为String类型不可变,因此需要开辟额外的空间存储字符;
时间复杂度:O(N) N为字符串的长度
空间复杂度:O(N) 需要额外的空间存放新的字符
public String replaceSpace(String s) {
if (s == null) return null;
StringBuffer sBuffer = new StringBuffer();
char[] strChar = s.toCharArray();
for (int i = 0; i < strChar.length; i++) {
if (strChar[i] == ' ') {
sBuffer.append("%20");
}else {
sBuffer.append(strChar[i]);
}
}
return sBuffer.toString();
}