lc1021-删除最外层的括号

题目描述

  • 合法字符串由 () 组成,删除最外层级的括号

示例

输入:s = "(()())(())"
输出:"()()()"
解释:(()()) (()) => ()() () => ()()()
输入:s = "(()())(())(()(()))"
输出:"()()()()(())"
输入:s = "()()"
输出:""

题解

  • 思路
    • 模拟
    • 可以用栈
    • 但双指针维护一个层级的括号更方便
func removeOuterParentheses(s string) string {
    res := ""
    start, cnt := 0, 0
    for i, c := range s {
        if c == '(' { cnt ++
        } else if c == ')' { cnt -- }
        if cnt == 0 {
            res += s[start + 1:i]
            start = i + 1
        }
    }
    return res
}
posted @ 2025-09-08 20:27  余越  阅读(7)  评论(0)    收藏  举报