替换空格
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
输入:s = “We are happy.”
输出:“We%20are%20happy.”
限制:
0 <= s 的长度 <= 10000
解题
方法一:内置函数
使用python内置函数 replace()
- 描述
str.replace(old, new[, max])
Python replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。 - 参数
old – 将被替换的子字符串。
new – 新字符串,用于替换old子字符串。
max – 可选字符串, 替换不超过 max 次 - 返回值
返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次。
class Solution:
def replaceSpace(self, s: str) -> str:
# 方法一:
return s.replace(" ", "%20")
方法二:遍历添加
创建一个新的字符串,依次匹配字符,如果字符为空,则替换并放入新字符串中;如果字符不为空则直接放入新字符串中。
# python
class Solution:
def replaceSpace(self, s: str) -> str:
# 方法二:
str_ = ''
for i in s:
if i == ' ':
i ='%20'
str_ = str_ + i
return str_
// java
class Solution {
public String replaceSpace(String s) {
StringBuilder res = new StringBuilder();
for(Character c : s.toCharArray())
{
if(c == ' ') res.append("%20");
else res.append(c);
}
return res.toString();
}
}
复杂度分析:
时间复杂度:
O
(
N
)
O(N)
O(N)
空间复杂度:
O
(
N
)
O(N)
O(N),新建字符串使用了线性大小的额外空间。
Java、python中的字符串
在 Python 和 Java 等语言中,字符串都被设计成不可变的类型,即无法直接修改字符串的某一位字符,需要新建一个字符串实现。
添加字符串 | ||
---|---|---|
java | +、StringBuilder.append() | |
python | +、list.append() and ’ '.join(list) | +适用于较少字符串;list、join()适用于较多字符串的拼接 |
参考文章: