class Solution:
def minInsertions(self, s: str) -> int:
N = len(s)
n_insert = 0
index = 0
left_count = 0
while index < N:
if s[index] == '(':
# 如果为左括号,做括号计数+1,并且index往后移一个
index += 1
left_count += 1
else:
# 如果为右括号
# 1. 判断 是否有左括号
if left_count>0:
# 匹配一个左括号
left_count -=1
else:
# 没有则要添加一个左括号
n_insert += 1
# 剩余并且后一个也要保证是右括号
if index < N-1 and s[index+1] ==')':
# 保证数组不越界
index += 2
else:
n_insert += 1
index += 1
if left_count > 0:
n_insert += left_count*2
return n_insert
每日一道leetcode - 1541. 平衡括号字符串的最少插入次数
最新推荐文章于 2022-12-07 16:23:45 发布