def minInsertions(self, s):
"""
:type s: str
:rtype: int
"""
res = 0 #插入左括号的数量
need = 0 #需要的右括号的数量
for i in s:
if i == "(": #每个左括号需要两个右括号
need += 2
if need % 2 == 1: #需要的右括号的数量需要为偶数
res += 1 #如果是奇数的话,插入一个左括号并且再消耗一个右括号
need -= 1
else:
need -= 1 #遇到右括号,需要的数量减一
if need == -1: #需要的右括号如果是复数的话
res += 1 #需要插入一个左括号
need = 1 #因为插入一个左括号需要两个右括号,所以需要右括号的数量为1
return res + need
leetcode1541. 平衡括号字符串的最少插入次数
最新推荐文章于 2024-08-17 20:25:49 发布