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.length()==0) return true;
- Stack<Character> stack = new Stack<Character>();
- int i=0;
- do{
- char cur = s.charAt(i);
- if(stack.size()!=0){
- switch(cur){
- case ']':
- if(stack.peek()=='[') stack.pop();
- else stack.add(cur);
- break;
- case '}':
- if(stack.peek()=='{') stack.pop();
- else stack.add(cur);
- break;
- case ')':
- if(stack.peek()=='(') stack.pop();
- else stack.add(cur);
- break;
- default:
- stack.add(cur);
- }
- }else{
- stack.add(cur);
- }
- i++;
- }while(i!=s.length());
- if(stack.size()==0) return true;
- else return false;
- }
- }
原文链接http://blog.youkuaiyun.com/crazy__chen/article/details/45569977