LeetCode20-Valid-Parentheses

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

正确的原则在于,需要关闭的时候最近的是匹配的,可以用栈来辅助实现

public boolean isValid(String s) {
    char[] array=s.toCharArray();
    Stack<Character> stack=new Stack();
    for(char c:array){
        if(c=='{' || c== '(' ||c=='[') stack.add(c);
        else{
            if(stack.isEmpty()) return false;
            if(c=='}'){
                if(stack.pop()!='{') return false;
            }else if(c==']'){
                if(stack.pop()!='[') return false;
            }else if(c==')'){
                if(stack.pop()!='(') return false;
            }
        }
    }
    return stack.isEmpty();  
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理