Leetcode541:反转字符串 Ⅱ(字符串)

xiaoxiao2021-02-28  48

题目描述:

代码:

1.按照2k为周期依次翻转,运行时间为72ms

class Solution: def reverseStr(self, s, k): """ :type s: str :type k: int :rtype: str """ if(k==1 or len(s)<=3): return s elif(len(s)<=k): return s[::-1] elif(len(s)<=2*k): return s[0:k][::-1]+s[k:len(s)] else: i=0 strout='' while(i<=len(s)-len(s)%(2*k)-2*k): strout+=s[i:i+k][::-1]+s[i+k:i+2*k] i+=2*k if(len(s)%(2*k)>=k): j=len(s)-len(s)%(2*k) strout+=s[j:j+k][::-1]+s[j+k:len(s)] else: strout+=s[len(s)-len(s)%(2*k):len(s)][::-1] return strout

2 利用list列表,用时52ms,改进了些

class Solution: def reverseStr(self, s, k): """ :type s: str :type k: int :rtype: str """ stack=[] while s: stack.append(s[:k]) s=s[k:] #print(stack) for i in range(len(stack)): if (i+1)%2!=0: stack[i]=stack[i][::-1] return ''.join(stack)
转载请注明原文地址: https://www.6miu.com/read-2622806.html

最新回复(0)