1 Public BooleanIsMatch (String str) {2Stack stack =NewStack ();3 for(inti = 0; I < str.length (); ++i) {4 CharCH =Str.charat (i);5 if(ch = = ' [' | | ch = = ' {' | | ch = = ' ('){6 Stack.push (CH);7}Else if(ch = = '] ' | | ch = = '} ' | | ch = = ') '){8 if(Stack.isempty ()) {//legality judgment: the "elimination" after the residual back bracket or itself is the beginning of the anti-parenthesis (example: "} ...")9 return false;Ten } One Chartop =Stack.peek (); A if(ch = = '] && top = = ' [' | | ch = = '} ' && top = = ' {' | | ch = = ') ' && top = = ' (') {//"To eliminate" a pair - Stack.pop (); - } the Else{ - return false; - } - } + } - returnStack.isempty ();//The last time "eliminate" (no more "judgment", so here to judge), whether or not to remain the anti-bracket +}
Code Source: http://www.nowcoder.com/questionTerminal/59360c1bd3304fb1892152400af54487
Determines whether a string with multiple parentheses matches correctly (e.g. ([[])) correct, [[(() ERROR]