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) { if(s==null){ return false; } Stack<Character> stack = new Stack<Character>(); for(int i = 0;i<s.length();i++){ if(s.charAt(i)=='('||s.charAt(i)=='{'||s.charAt(i)=='['){ stack.push(s.charAt(i)); continue; } switch(s.charAt(i)){ case ')': if(stack.isEmpty()||stack.pop()!='('){ return false; } break; case ']': if(stack.isEmpty()||stack.pop()!='['){ return false; } break; case '}': if(stack.isEmpty()||stack.pop()!='{'){ return false; } break; } } if(stack.isEmpty()){ return true; }else{ return false; } } }
原文地址:http://blog.csdn.net/guorudi/article/details/38947765