class Solution:
def reverseString(self, s: List[str]) -> None:
left = 0
right = len(s) -1
while left < right:
s[left],s[right] = s[right],s[left]
left +=1
right -=1
return s
class Solution:
def reverseStr(self, s: str, k: int) -> str:
ss = [i for i in s]
n=len(s)
for i in range(0,n,2*k):
ss[i:i+k]=ss[i:i+k][::-1]
return "".join(ss)
class Solution:
def reverseWords(self, s: str) -> str:
s = s.strip() # 删除首尾空格
i = j = len(s) - 1
res = []
while i >= 0:
while i >= 0 and s[i] != ' ': i -= 1 # 搜索首个空格
res.append(s[i + 1: j + 1]) # 添加单词
while i >= 0 and s[i] == ' ': i -= 1 # 跳过单词间空格
j = i # j 指向下个单词的尾字符
return ' '.join(res)
class Solution:
def repeatedSubstringPattern(self, s: str) -> bool:
return True if s in (s + s)[1:-1] else False
#如果s不包含重复子串,那么s自己就是一次重复的子串,那么把s + s去头去尾中就一定不包含s自己。如果s包含重复子串,那么在s + s去头去尾中就一定能找到s自己