給定乙個字串和乙個整數 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 要求 該...