剑指 Offer 05. 替换空格
Posted 炫云云
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指 Offer 05. 替换空格相关的知识,希望对你有一定的参考价值。
剑指 Offer 05. 替换空格
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
输入:s = "We are happy."
输出:"We%20are%20happy."
class Solution(object):
def replaceSpace(self, s):
"""
:type s: str
:rtype: str
"""
return s.replace(" ","%20")
遍历添加
算法流程:
-
初始化一个 list (Python),记为 res ;
-
遍历列表 s s s 中的每个字符 c c c :
当 c c c 为空格时:向
res
后添加字符串 “%20” ;当 c c c 不为空格时:向
res
后添加字符 c c c; -
将列表
res
转化为字符串并返回。
复杂度分析:
- 时间复杂度 O ( N ) O(N) O(N) : 遍历使用 O ( N ) O(N) O(N) ,每轮添加(修改)字符操作使用 O ( 1 ) O(1) O(1);
- 空间复杂度 O ( N ) O(N) O(N) : Python 新建的 list 和 Java 新建的 StringBuilder 都使用了线性大小的额外空间
class Solution(object):
def replaceSpace(self, s):
"""
:type s: str
:rtype: str
"""
res =[]
for c in s:
if c == ' ':
res.append("%20")
else:
res.append(c)
return "".join(res)
参考
以上是关于剑指 Offer 05. 替换空格的主要内容,如果未能解决你的问题,请参考以下文章