給定一個字串 s 和一個整數 k,你需要對從字串開頭算起的每隔 2k 個字符的前 k 個字符進行反轉,
如果剩余字符少于 k 個,則將剩余字符全部反轉,
如果剩余字符小于 2k 但大于或等于 k 個,則反轉前 k 個字符,其余字符保持原樣,
示例:
輸入: s = "abcdefg", k = 2
輸出: "bacdfeg"
提示:
該字串只包含小寫英文字母,
給定字串的長度和 k 在 [1, 10000] 范圍內,
思路:通俗一點說,每隔k個反轉k個,末尾不夠k個時全部反轉;
class Solution:
def reverseStr(self, s: str, k: int) -> str:
left, mid, right = 0, k, 2 * k # 初始化左中右指標
res = '' # 初始化結果字串
while len(res) < len(s): # 滿足條件時執行
res += s[left:mid][::-1] + s[mid:right] # 把當前單元的結果添加到結果字串
left, mid, right = left + 2 * k, mid + 2 * k, right + 2 * k
return res # 回傳結果
CSDN認證博客專家
Go/GoLang
Redis
MySQL
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/266680.html
標籤:python
