题意分析
- 这个题目的意思很简单,就是将一个字符串里面的空白字符替换成%20
解法分析
解法一 C++版
我们直接使用C++的string进行处理。我们发现C++里面有一个string还是很好用的,它重载了+=运算符。我们可以直接通过遍历整个字符串进行处理。
代码如下
- 我们需要对长度为n的字符串遍历一次,时间复杂度为O(n),
- 需要存储长度为n的字符串,空间复杂度为O(n)
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @return string字符串 */ string replaceSpace(string s) { // write code here string ans=""; // 直接对字符串进行遍历 for(auto x:s){ // 对空白字符进行替换 if(x==' '){ ans+="%20"; // 否则不进行处理 }else{ ans+=x; } } return ans; } };
解法二 Python的实现
- python的写法和C++的写法类似,可以参考一下。
- 代码如下
- 需要对长度为n的字符串进行遍历,时间复杂度为O(n)
- 需要存储长度为n的字符串,空间复杂度为O(n)
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param s string字符串 # @return string字符串 # class Solution: def replaceSpace(self , s ): # write code here # 定义一个空的列表 ans=[] for x in s: # 判断为空的情况 if x==' ': ans.append('%20') else: ans.append(x) return "".join(ans) # 将这个列表转化为字符串