好多天没刷题了,最近有一点点杂事
第一题
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
输入:s = “We are happy.”
输出:“We%20are%20happy.”
1特殊情况
空字符串
if len(s) == 0:
return s
2正常处理
for i in s:
if i == ' ':
i = '%20'
news.append(i)
return ''.join(news)
3原地or新建
新建:
news = []
news.append(i)
4join的用法
return ''.join(news)
第二题
左旋转字符串
输入: s = “abcdefg”, k = 2
输出: “cdefgab”
方法1 切片 推荐
return s[n:]+s[0:n]
方法2 不允许切片,用列表添加 推荐
res = []
for i,j in enumerate(s):
if i >= n:
res.append(j)
for i,j in enumerate(s):
if i <n:
res.append(j)
return ''.join(res)
方法3 不允许使用join函数,用字符串res += j 不推荐
res = ""
for i,j in enumerate(s):
if i >= n:
res += j # 每次拼接都需要新建一个字符串 不建议此方法
for i,j in enumerate(s):
if i <n:
res += j
return res