请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
(C++)
class Solution {
public:
string replaceSpace(string s) {
// 首先扩展字符串的长度
int old_size = s.size();
int count = 0;
for (int i = 0; i < s.size(); i++) {
if (s[i] == ' ') {
count++;
}
}
s.resize(s.size() + count*2); // 扩展长度
// 双指针法
int new_size = s.size();
for (int i = new_size, j = old_size; j < i; i--, j--) {
if (s[j] != ' ') {
s[i] = s[j];
} else {
s[i] = '0';
s[i - 1] = '2';
s[i - 2] = '%';
i -= 2;
}
}
return s;
}
};
(Python)
- 1、使用字符串内置函数
def str2str(s):
return s.replace(" ","%20")
if __name__ == "__main__":
s = input("请输入:")
s = str2str(s)
print(s)
"""
input: We Are Happy
output: We%20Are%20Happy
"""
- 2、自己定义函数
这里需要分析一下,字符串是不可变类型数据,不可以使用
s[i] = "%20" # 这种方法是不可以使用的
必须将其转换至可变数据类型,才可以操作
def str2str(s):
s = list(s)
n = len(s)
for i in range(n):
if s[i] == " ":
s[i] = "%20"
return ''.join(s)
if __name__ == "__main__":
s = input("请输入:")
s = str2str(s)
print(s)
这里是我们从控制台输入:
"""
input: We Are Happy
output: We%20Are%20Happy
"""