算法 Valid Parentheses

来源:互联网 发布:淘宝详情装修 编辑:程序博客网 时间:2024/06/05 09:01

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

The brackets must close in the correct order, "()" and "()[]{}" are all valid but"(]" and"([)]" are not.



public class Solution {
    public boolean isValid(String s) {
        
        char[] array=s.toCharArray();
        Stack<Character> stack=new Stack<Character>();
        for(int i=0;i<array.length;i++)
        {
            char ch=array[i];
            if(ch=='{'||ch=='['||ch=='(')
            {
                stack.push(ch);
            }
            else
            {
                if(ch==')')
                {
                    if(stack.empty())
                    {
                        return false;
                    }
                    if(stack.peek()=='(')
                    {
                        stack.pop();
                    }
                    else
                    {
                        return false;
                    }
                }
                else if(ch==']')
                {
                    if(stack.empty())
                    {
                        return false;
                    }
                    if(stack.peek()=='[')
                    {
                        stack.pop();
                    }
                    else
                    {
                        return false;
                    }
                }
                else if(ch=='}')
                {
                    if(stack.empty())
                    {
                        return false;
                    }
                    if(stack.peek()=='{')
                    {
                        stack.pop();
                    }
                    else
                    {
                        return false;
                    }
                }
            }
        }
        if(!stack.empty())
        {
            return false;
        }
        return true;
        
    }
}

0 0