码迷,mamicode.com
首页 > 其他好文 > 详细

20. Valid Parentheses

时间:2016-09-24 01:59:32      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:

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.

思路:最重要的是检查如果有一个右边的符号,那左边肯定对应它的一个左边符号。这样用stack做就最符合。但是要检查特殊情况,例如只有一个右边符号,检查stack是不是空。另一种情况是左边符号的个数大于右边符号,循环结束后检查是不是空。

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

 

20. Valid Parentheses

标签:

原文地址:http://www.cnblogs.com/Machelsky/p/5902285.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!