344.反转字符串
利用双指针
class Solution:
def reverseString(self, s: List[str]) -> None:
"""
Do not return anything, modify s in-place instead.
"""
left = 0
right = len(s) - 1
while left < right:
temp = s[right]
s[right] = s[left]
s[left] = temp
left += 1
right -= 1
541. 反转字符串II
没太理解这题,有空再看看
class Solution:
def reverseStr(self, s: str, k: int) -> str:
# Two pointers. Another is inside the loop.
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
return s
151.翻转字符串里的单词
利用split将每个单词隔开,再直接翻转单词顺序,最后再连起来
class Solution:
def reverseWords(self, s: str) -> str:
lst = s.split()
left = 0
right = len(lst) - 1
while left < right:
lst[left], lst[right] = lst[right], lst[left]
left += 1
right -= 1
s_rev = ' '.join(lst)
return s_rev
参考文档:代码随想录