Topic:
Given A string containing just the characters, determine if the input string is valid.
The brackets must close in the correct order, "()" and "() []{}" is all valid but "(]" and "([)]" is not.
Translation:
Given a string that contains only ' (', ') ', ' {', '} ', ' [' and '] ' characters, check if it is "valid".
Parentheses must be closed in the correct order, such as "()" and "() []{}" are valid, "(]" and "([)]" are invalid.
Analysis:
The subject of the test is the stack structure, with a LIFO feature. Effectively contains 2 aspects, the first one is if the parentheses are closed, the former must have exactly one open parenthesis, the second is the final result, you need to offset all open brackets. One of the more error-prone areas is when you encounter closing parentheses, you must first determine if the stack is empty.
Java Edition code:
Public class solution { PublicBoolean isValid (String s) {char[] Chararr=s.tochararray ();List<Character>List=NewArraylist<> (); for(Character C:chararr) {if(c==' ('|| c==' {'|| c==' ['){List. Add (c); }Else{if(List. Size () = =0){return false; } Char last=List. Get (List. Size ()-1);if(c==' ) '&&last!=' ('){return false; }Else if(c=='} '&&last!=' {'){return false; }Else if(c=='] '&&last!=' ['){return false; }List. Remove (List. Size ()-1); } }if(List. Size ()! =0){return false; }return true; }}
Leet Code OJ 20. Valid parentheses [Difficulty:easy]