原题地址:https://leetcode.com/problems/valid-parentheses/
题目:验证括号
给定一个字符串,仅包含'('
, ')'
, '{'
, '}'
, '['
,']'
等字符,检验括号匹配是否合法。
合法的条件是:
- 一个括号必须被同类型的括号结束。
- 括号结束的顺序必须正确。
注意,空字符串可以视为合法。
Example 1:
Input: "()" Output: true
Example 2:
Input: "()[]{}" Output: true
Example 3:
Input: "(]" Output: false
Example 4:
Input: "([)]" Output: false
Example 5:
Input: "{[]}" Output: true
验证括号合法性是堆栈的基本应用,这类可以嵌套的信息的处理用堆栈比较方便。左括号压栈,右括号弹栈,检测对应关系即可。
我自己实现的stack:

左括号压栈;右括号弹栈,检测匹配与否:

耗时1ms,快于98.28%的java提交。
Github地址:https://github.com/tinyfool/leetcode/tree/master/src/p0020
其他堆栈和队列相关题目,参照堆栈和队列专题。