括号的合法序列:LeetCode32

2019-08-27  本文已影响0人  轻菊不爱柠檬

解释:()  算两个子串,故长度为2 。

算法:双指针+贪心,时间复杂度O(n)

思路:

1.假设当前从前往后扫描的合法子串的数量,现在设置一个变量val用来记录遇到的括号,若为'(',那么val++;若为')',那么val--。

2.判断若最后val==0,说明是合法的,那么res统计下来;若val<0,那么就说明接下来的都不会是合法的(因都是右括号而没有左括号了),此时就把val置为0,start往后移动一位。

3.可以发现我们第二步我们没有统计val>0的情况,这个情况我们是放在另一个循环里面,即由后往前扫描的这次。

上一篇下一篇

猜你喜欢

热点阅读