原题地址: https://leetcode.com/problems/valid-parentheses/
给定一个字符串,仅包含 '('
, ')'
, '{'
, '}'
, '['
, ']'
等字符,检验括号匹配是否合法。
合法的条件是:
注意,空字符串可以视为合法。
<strong>Input:</strong> "()" <strong>Output:</strong> true
<strong>Input:</strong> "()[]{}" <strong>Output:</strong> true
<strong>Input:</strong> "(]" <strong>Output:</strong> false
<strong>Input:</strong> "([)]" <strong>Output:</strong> false
<strong>Input:</strong> "{[]}" <strong>Output:</strong> true
验证括号合法性是堆栈的基本应用,这类可以嵌套的信息的处理用堆栈比较方便。左括号压栈,右括号弹栈,检测对应关系即可。
我自己实现的stack:
左括号压栈;右括号弹栈,检测匹配与否:
耗时1ms,快于 98.28% 的java提交。
Github地址: https://github.com/tinyfool/leetcode/tree/master/src/p0020
其他堆栈和队列相关题目,参照堆栈和队列专题。