首页 > 代码库 > Valid Parentheses

Valid Parentheses

Valid Parentheses 

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.

 1 public class Solution { 2    public boolean isValid(String s) { 3         if(s.length() % 2 == 1)//个数为奇数返回false 4             return false; 5         char stack[] = new char[s.length() / 2]; 6 //        boolean isValid = true; 7         int top = -1;//栈顶 8         stack[++top] = s.charAt(0); 9         10         for(int i = 1; i < s.length(); i++){//遍历完成11             12             if(‘(‘ == s.charAt(i) || ‘[‘ == s.charAt(i) || ‘{‘ == s.charAt(i)){//入栈13                 if(top >= stack.length - 1)//左括号个数大于右括号个数14                     return false;15                 stack[++top] = s.charAt(i);16             }17             else{18                 if(-1 == top){//如果栈已经空了19                     return false;20                 }21                 char temp = stack[top--];//出栈22                 switch(s.charAt(i)){23                     case ‘)‘:24                         if(temp != ‘(‘)25                             return false;26                         break;27                     case ‘]‘:28                         if(temp != ‘[‘)29                             return false;30                         break;31                     case ‘}‘:32                         if(temp != ‘{‘)33                             return false;34                 }35             }36         }37         if(-1 == top)//栈为空38             return true;39         return false;//栈不空40     }41 }

 

Valid Parentheses