LeetCode 541反轉字串II

2021-09-22 19:33:27 字數 993 閱讀 5249

給定乙個字串和乙個整數 k,你需要對從字串開頭算起的每個 2k 個字元的前k個字元進行反轉。如果剩餘少於 k 個字元,則將剩餘的所有全部反轉。如果有小於 2k 但大於或等於 k 個字元,則反轉前 k 個字元,並將剩餘的字元保持原樣。

示例:輸入: s = 「abcdefg」, k = 2

輸出: 「bacdfeg」

要求:

方法1:遞迴

tips:

注意reverse()方法和reversed()函式之間的區別。類似的還有sort()和sorted()的區別。

class solution(object):

def reversestr(self, s , k):

""":type s: str

:type k: int

:rtype: str

"""n = len(s)

if n<=k:

return ''.join(reversed(s))

elif k方法2:

class solution(object):

def reversestr(self, s, k):

""":type s: str

:type k: int

:rtype: str

"""ans = list(s)

lth = len(ans)

cnt = 0

for i in range(0,lth,k):

# 如果cnt是偶數,這樣保證對長度為2k的列表中的前k個元素進行操作,跳過第k+1~2k個元素

if cnt&1==0:

l,r=i,i+k

if r>lth:r=lth

while lans[l],ans[r-1] = ans[r-1],ans[l]

l+=1

r-=1

cnt+=1

return ''.join(ans)

leetcode 541 反轉字串 II

題目描述 給定乙個字串和乙個整數 k,你需要對從字串開頭算起的每個 2k 個字元的前k個字元進行反轉。如果剩餘少於 k 個字元,則將剩餘的所有全部反轉。如果有小於 2k 但大於或等於 k 個字元,則反轉前 k 個字元,並將剩餘的字元保持原樣。示例 輸入 s abcdefg k 2輸出 bacdfeg...

LeetCode 541 反轉字串 II

給定乙個字串和乙個整數 k,你需要對從字串開頭算起的每個 2k 個字元的前k個字元進行反轉。如果剩餘少於 k 個字元,則將剩餘的所有全部反轉。如果有小於 2k 但大於或等於 k 個字元,則反轉前 k 個字元,並將剩餘的字元保持原樣。step1 把字串長度 對2k取餘剩下的數字,以及 2k得到的結果儲...

Leetcode 541 反轉字串II

給定乙個字串和乙個整數 k,你需要對從字串開頭算起的每個 2k 個字元的前k個字元進行反轉。如果剩餘少於 k 個字元,則將剩餘的所有全部反轉。如果有小於 2k 但大於或等於 k 個字元,則反轉前 k 個字元,並將剩餘的字元保持原樣。示例 輸入 s abcdefg k 2輸出 bacdfeg 要求 該...