LeetCode/1541. 平衡括号字符串的最少插入次数
1541. 平衡括号字符串的最少插入次数
给你一个括号字符串 s ,它只包含字符 '(' 和 ')'。一个括号字符串被称为平衡的当它满足:
任何左括号 '(' 必须对应两个连续的右括号 '))' 。
左括号'('必须在对应的连续两个右括号'))'之前。
比方说 "())", "())(())))" 和 "(())())))" 都是平衡的,")()","()))" 和 "(()))"都是不平衡的。
你可以在任意位置插入字符'('和')'使字符串平衡。
请你返回让s平衡的最少插入次数。
示例 1:
1 | 输入:s = "(()))" |
示例 2:
1 | 输入:s = "())" |
示例 3:
1 | 输入:s = "))())(" |
示例 4:
1 | 输入:s = "((((((" |
示例 5:
1 | 输入:s = ")))))))" |
提示:
1 <= s.length <= 10^5s只包含'('和')'。
来源:力扣(LeetCode)
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题解:
本题还是括号匹配问题,但需要注意两个点。第一点就是遇到一个左括号后,对右括号的需求量增加2,第二点就是碰到一个左括号后,如果右括号的数量是奇数个,那么我们需要添加一个左括号,并对右括号的需求减一以保证一个左括号对应两个右括号。
具体代码如下:
1 | class Solution { |

