leetcode20有效的括号

Posted lisin-lee-cooper

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode20有效的括号相关的知识,希望对你有一定的参考价值。

一.问题描述

给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。

示例 1:

输入:s = “()”
输出:true

二.示例代码

public class ValidParentheses20 {

    static Map<Character, Character> map = new HashMap<Character, Character>() {
        {
            put(')', '(');
            put(']', '[');
            put('}', '{');
        }
    };

    public static void main(String[] args) {
        String s = "(){}[]{}()(";
        boolean result = validParentheses(s);
        System.out.println(result);
    }

    private static boolean validParentheses(String s) {
        Stack<Character> stack = new Stack<>();
        for (int i = 0; i < s.length(); i++) {
            if ('(' == s.charAt(i) || '[' == s.charAt(i) || '{' == s.charAt(i)) {
                stack.push(s.charAt(i));
            } else {
                if (stack.isEmpty()) {
                    return false;
                }
                if (map.get(s.charAt(i)) != (stack.pop())) {
                    return false;
                }
            }
        }
        return stack.isEmpty();
    }
    
}

以上是关于leetcode20有效的括号的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 20. 有效的括号

leetcode20有效的括号

LeetCode第20题——有效的括号

LeetCode:有效的括号20

leetcode-20.有效的括号

LeetCode 20. 有效的括号