LeetCode-Java-20. 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

代码

注意运用栈(LinkedList实现)来进行处理。

class Solution {
    public  boolean isValid(String s) {
        if(s==null||s.length()==0)
            return true;
        LinkedList<Character> stack = new LinkedList<Character>();
        int len = s.length();
        for(int i = 0;i<len;i++)
        {
            char x = s.charAt(i);
            if(stack.size()==0) {
                stack.addFirst(x);
            } else if(CompareC(stack.getFirst(),x)) {
                stack.removeFirst();
            } else {
                stack.addFirst(x);
            }
        }
        if(stack.size()==0)
            return true;
        else
            return false;
    }
    private static boolean CompareC(char a,char b)
    {
        boolean flag = false;
        switch(a)
        {
            case '(' :
                if(b==')')
                    flag = true;
                break;
            case '[' :
                if(b==']')
                    flag = true;
                break;
            case '{' :
                if(b=='}')
                    flag = true;
                break;

        }
        return flag;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_38345606/article/details/81040888