Topic
Given A string containing just the characters ' (', ') ', ' {', '} ', ' [' and '] ', determine if the input string is valid.
The brackets must close in the correct order, "()" and "() []{}" is all valid but "(]" and "([)]" is not.
Analysis
Typical examples of parentheses matching problems, data structures in a book. Its program implementation, the use of stack structure is the best method.
AC Code
classSolution { Public:BOOLIsValid (strings) {intLen =strlen(S.c_str ());if(len = =0)return true;if(Len%2!=0)return false;//bracket matching problem, with data structure stack auxiliary implementation Stack<char>Sta for(inti =0; i < Len; i++) {if(S[i]! =' ) '&& S[i]! ='] '&& S[i]! ='} ') Sta.push (S[i]);Else{if(Sta.size () <=0)return false;if(S[i] = = Pairletter (Sta.top ())) Sta.pop ();Else return false; }//else}//for if(sta.size () = =0)return true;Else return false; }CharPairletter (Const Char&C) {Switch(c) { Case ' (':return ' ) '; Break; Case ' [':return '] '; Break; Case ' {':return '} '; Break;default:return 0; Break; } }};
GitHub test Program source code
Leetcode (Valid) parentheses