美文网首页
leetcode题目20. 有效的括号(java)

leetcode题目20. 有效的括号(java)

作者: castlet | 来源:发表于2020-06-02 22:41 被阅读0次

题目描述

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:

  • 左括号必须用相同类型的右括号闭合
  • 左括号必须以正确的顺序闭合。
  • 注意空字符串可被认为是有效字符串。

示例

输入: "()"
输出: true

输入: "()[]{}"
输出: true

输入: "(]"
输出: false

代码

public boolean isValid(String s) {
    if (s == null || s.length() == 0 || s == "") {
        return true;
    }
    Stack<Character> stack = new Stack<>();
    for (int i = 0; i < s.length(); i++) {
        char tmp = s.charAt(i);
        if ((tmp == '(') || (tmp == '{') || (tmp == '[')) {
            stack.push(tmp);
        } else {
            if (stack.isEmpty()) {
                return false;
            }
            if ((tmp == ')' && stack.peek() == '(') ||
                    (tmp == ']' && stack.peek() == '[') ||
                    (tmp == '}' && stack.peek() == '{')) {
                stack.pop();
            } else {
                return false;
            }
        }
    }
    return stack.isEmpty();
}

相关文章

网友评论

      本文标题:leetcode题目20. 有效的括号(java)

      本文链接:https://www.haomeiwen.com/subject/uhlmzhtx.html