括号配对

题目:

最长连续有效括号序列。


解法1:栈

记录配对成功的括号下标,统计连续的最大长度。一对配对的括号,其内部一定全都配对了。

解法2:

只包含一个配对串的括号串有以下几种形态:

  1. (valid)
  2. ))(valid)((
  3. ))(valid)
  4. (((valid)
  5. (valid)((
  6. (valid)))

任何一个给定的括号串一定是上面的组合,现在采取两种遍历方法,分别统计给定括号串中上述6种形态的长度。

  1. 从左到右,统计1,2,3,5,6。
    原则:忽略首先碰到的)
    左括号数left<右括号数right时,两数全部清0。
    left==right时,说明检测到一个有效的串,记录其长度,继续统计。
    left>right时,继续统计。
  2. 从右到左,统计1,2,3,4,5。
    原则:忽略首先碰到的(
    左括号数left>右括号数right时,两数全部清0。
    left==right时
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值