Leedcode-反轉字串 II

Junior_bond發表於2024-05-31

自己寫的:

class Solution:
    def reverseStr(self, s: str, k: int) -> str:
        # 初始化兩個空列表:s_li用於儲存切分後的字串片段,res用於儲存處理後的片段
        s_li = []
        res = []

        # 遍歷字串,步長為2*k,切分成每2*k個字元一組的片段並儲存在s_li中
        for i in range(0, len(s), 2 * k):
            s_li.append(s[i:i + 2 * k])

        # 遍歷s_li中的每一個片段
        for j in s_li:
            # 如果片段長度為2*k或k<=片段長度<2*k
            if len(j) == 2 * k or k <= len(j) < 2 * k:
                # 反轉前k個字元
                first_half = j[0:k][::-1]
                # 拼接反轉後的前k個字元和剩餘部分
                temp = first_half + j[k:]
                # 將處理後的片段新增到res列表中
                res.append(temp)
            else:
                # 如果片段長度小於k,直接反轉整個片段
                res.append(j[::-1])

        # 將處理後的所有片段拼接成一個字串並返回
        return ''.join(res)

相關文章