题解 | #完成括号匹配#
完成括号匹配
https://www.nowcoder.com/practice/fe8d6a1b88af4ba6b4dbb10972059040
seq = input() cnt_left = cnt_right = 0 left_add = right_add = 0 for c in seq: if c == '[': cnt_left += 1 else: cnt_right += 1 if cnt_right > cnt_left: cnt_left = cnt_right = 0 left_add += 1 cnt_left = cnt_right = 0 for c in seq[::-1]: if c == '[': cnt_left += 1 else: cnt_right += 1 if cnt_right < cnt_left: cnt_left = cnt_right = 0 right_add += 1 print('['*left_add + seq + ']'*right_add)
计算不匹配的左括号数量和右括号数量,输出时补上;
括号匹配的过程中,左右括号地位是对称的,所以正向遍历一次,反向遍历一次即可求出不匹配的左右括号数量