【Leetcode】python - [1021] Remove Outermost Parentheses 個人解法筆記

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

題目出處

1021. Remove Outermost Parentheses

難度

easy

題目分類

String, Stack, Bracket Sequences

2026-10-08 一刷

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

class Solution:
    def removeOuterParentheses(self, s: str) -> str:
        ans = []
        remain_left = 0 
        for c in s:
            if c == '(': 
                remain_left += 1
                if remain_left > 1: # skip(remove) left when remain_left = 1
                    ans.append(c)
            else: # ')'
                remain_left -= 1
                if remain_left > 0: # skip(remove) right when remain_left = 0
                    ans.append(c)
            
        return "".join(ans)

算法說明

數學題,稍微思考一下可以推得,總之要刪除的就是深度為 1 的「(」,與對應的「)」

Time Complexity

O(n)

Space Complexity

O(n) # 不計解答 O(1)

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