题解 | #有效括号序列#

有效括号序列

http://www.nowcoder.com/practice/37548e94a270412c8b9fb85643c8ccc2

遍历给定的括号序列

  1. 如果当前字符是左括号 ( [ {,直接入栈

  2. 否则就是右括号

    • 如果当前栈为空或者栈顶和当前右括号的 ASCII 码之差的绝对值大于 2,说明不是一对括号,同时也不是有效的括号序列,所以直接返回 false。

    (、) ASCII 码 差 1,[、] 和 {、} ASCII 码差 2,所以如果两个括号不是一对匹配的括号则 ASCII 码绝对值差必然 > 2,如 (]、{)、[} 等等

    • 否则说明栈顶和当前元素是一对匹配的括号,所以将栈顶弹出,继续匹配

最后判断栈是否为空,如果为空返回 true,否则返回 false。

全部评论

相关推荐

03-19 10:07
已编辑
广东药科大学 golang
Yki_:你倒是进一个面啊
点赞 评论 收藏
分享
ResourceUtilization:四六级不愧是大学最有用的证之一
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务