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
}

浙公网安备 33010602011771号