【Leetcode】python - [1541] Minimum Insertions to Balance a Parentheses String 個人解法筆記

整理 LeetCode #1541 的個人解法筆記:解題思路、Time/Space Complexity 與邊界條件。

題目出處

1541. Minimum Insertions to Balance a Parentheses String

難度

medium

題目分類

String, Stack, Greedy, Bracket Sequences

2026-10-09 一刷

個人範例程式碼 - 一刷 (2026/10/09)

class Solution:
    def minInsertions(self, s: str) -> int:
        ans = 0
        left, right = 0, 0
        
        for c in s:
            if c == '(':
                if right % 2 == 1: # 需要 two consecutive ), 出現 ( 需要立即補一個變回偶數
                    ans += 1
                    right += 1
                left += 1        
            else: # ')'
                right += 1
                if left*2 < right: # add '('
                    ans += 1
                    left += 1 

        return ans + (left * 2 - right) # add ')'

算法說明

處理括號再加上一些奇偶性的判斷,主要是一個「(」需要配兩個「)」,
還有題目要注意兩個「)」必須要連續「))」,這邊處理要小心,不能留到最後才一次處理。

Time Complexity

O(n)

Space Complexity

O(1)

Licensed under CC BY-NC-SA 4.0
最後更新 Oct 09, 2026
使用 Hugo 建立
主題 Stack 由 Jimmy 設計