转为列表,使用双指针法
class Solution:
def reverseStr(self, s: str, k: int) -> str:
s = list(s)
for i in range(0,len(s),2*k):
j = min(len(s)-1,i+k-1)
while i<j :
s[i],s[j] = s[j],s[i]
i += 1
j -= 1
return ''.join(s)
二刷用了str的索引法,速度会快一些
class Solution:
def reverseStr(self, s: str, k: int) -> str:
p = 0
while p<len(s):
p2 = p+k
s = s[:p]+s[p:p2][::-1]+s[p2:]
p = p+2*k
return s