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


IP属地:安徽来自Android客户端1楼2025-03-23 23:11回复
    正反向的方法一般比较好想,写的也快,并且复杂度上同样O(n),如果不追求完美的数学推理,对括号之类具有对称性的问题都可以用正反向过


    IP属地:安徽来自Android客户端2楼2025-03-23 23:12
    回复