1.字符串
字符串是由字符组成的序列,可以包含字母、数字、符号和空格等字符。
在Python中,可以使用单引号('
)或双引号("
)来定义字符串;字符串是不可变(immutable
)的,即一旦创建就不能直接修改字符串的内容,但可以通过创建一个新的字符串来实现修改的效果。
2.344反转字符表
双指针
切片
s[:] = s[::-1]
栈 s[i] = stack.pop()
3.541反转字符表Ⅱ
当需要固定规律一段一段去处理字符串的时候,要想想在for循环的表达式上做文章
**
for cur in range(0, len(s), 2 * k):
res[cur: cur + k] = reverse_substring(res[cur: cur + k])
**另外记得切片方法:
p = 0
while p < len(s):
p2 = p + k
# Written in this could be more pythonic.
s = s[:p] + s[p: p2][::-1] + s[p2:]
p = p + 2 * k
4.ka54替换数字
python里的string不可改,需要额外空间。空间复杂度为O(n).
但是本题旨在关注很多数组填充类的问题,其做法都是先预先给数组扩容带填充后的大小,然后在从后向前进行操作。
5.151反转字符表中的单词
双指针法不再赘述
法2:先删除空白,然后整个反转,最后单词反转。
# 删除前后空白
s = s.strip()
# 反转整个字符串
s = s[::-1]
# 将字符串拆分为单词,并反转每个单词
s = ' '.join(word[::-1] for word in s.split())
6.ka55右旋字符串
先一起倒过来,然后按分组拼接。
s = s[len(s)-k:] + s[:len(s)-k]