力扣:2116。
括号问题具有对称性,可以用正反各遍历一遍的方法过,如果有时间的话也可以想统一的方法一次遍历,这里用正反遍历的方法思考。
首先,从简单到复杂,对一般的括号,由题知只要括号能全部配对无论是(()),还是()(),都合法,那么可知已配对字符对整体无影响可去除,对任意的括号字符串去除已配对后,只有多出 ) ,( ,)( 的时候不合法,所以我们正向遍历,只要 )多于(就返回false,同理反向遍历时只要 ( 多于 )就返回,若正反向都没有多于的括号则说明合法,所以我们计数 ( ,) 各自数量即可。
题目又给出当第i位为0时可以任意改变,那么第i位时我们计res为变化指数,只要 ( ,) 各自数量之差小于变变化指数,那么该字符串仍合法。
