leetcode 20 有效的括号

leetcode 20 有效的括号

官网: https://leetcode-cn.com/problems/valid-parentheses/

题目描述(中文)

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

有效字符串需满足:

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

示例 1:

输入: "()"
输出: true

示例 2:

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

示例 3:

输入: "(]"
输出: false

示例 4:

输入: "([)]"
输出: false

示例 5:

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

题目描述(英文)

Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.

An input string is valid if:

Open brackets must be closed by the same type of brackets.
Open brackets must be closed in the correct order.
Note that an empty string is also considered valid.

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

提交代码

import java.util.Stack;

class Solution {
    public boolean isValid(String s) {
        Stack<Character> stack = new Stack<>();
        for(int i=0;i<s.length();i++){
            char c = s.charAt(i);
            if(c == '(' || c == '{' || c == '[')
                stack.push(c);
            else{
                if(stack.isEmpty()) return false;
                char topChar = stack.pop();
                if(c == ')' && topChar != '(') return false;
                if(c == '}' && topChar != '{') return false;
                if(c == ']' && topChar != '[') return false;
            }
        }
        return stack.isEmpty();
    }
}

提交反馈

执行结果:通过
执行用时 :3 ms, 在所有 Java 提交中击败了94.42%的用户
内存消耗 :34.1 MB, 在所有 Java 提交中击败了87.29%的用户

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务