转载

LeetCode 第20题 Valid Parentheses 【堆栈】Java

原题地址: https://leetcode.com/problems/valid-parentheses/

题目:验证括号

给定一个字符串,仅包含 '('')''{''}''[' , ']' 等字符,检验括号匹配是否合法。

合法的条件是:

  • 一个括号必须被同类型的括号结束。
  • 括号结束的顺序必须正确。

注意,空字符串可以视为合法。

Example 1:

<strong>Input:</strong> "()"
<strong>Output:</strong> true

Example 2:

<strong>Input:</strong> "()[]{}"
<strong>Output:</strong> true

Example 3:

<strong>Input:</strong> "(]"
<strong>Output:</strong> false

Example 4:

<strong>Input:</strong> "([)]"
<strong>Output:</strong> false

Example 5:

<strong>Input:</strong> "{[]}"
<strong>Output:</strong> true

验证括号合法性是堆栈的基本应用,这类可以嵌套的信息的处理用堆栈比较方便。左括号压栈,右括号弹栈,检测对应关系即可。

我自己实现的stack:

LeetCode 第20题 Valid Parentheses 【堆栈】Java

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

LeetCode 第20题 Valid Parentheses 【堆栈】Java

耗时1ms,快于 98.28% 的java提交。

Github地址: https://github.com/tinyfool/leetcode/tree/master/src/p0020

其他堆栈和队列相关题目,参照堆栈和队列专题。

原文  http://codechina.org/2019/07/leetcode-20-valid-parentheses-stack-java/
正文到此结束
Loading...