classSolution{// Hash table that takes care of the mappings.private HashMap<Character, Character> mappings;// Initialize hash map with mappings. This simply makes the code easier to read.publicSolution(){this.mappings =newHashMap<Character, Character>();this.mappings.put(')','(');this.mappings.put('}','{');this.mappings.put(']','[');}publicbooleanisValid(String s){// Initialize a stack to be used in the algorithm.
Stack<Character> stack =newStack<Character>();for(int i =0; i < s.length(); i++){char c = s.charAt(i);// If the current character is a closing bracket.if(this.mappings.containsKey(c)){// Get the top element of the stack. If the stack is empty, set a dummy value of '#'char topElement = stack.empty()?'#': stack.pop();// If the mapping for this bracket doesn't match the stack's top element, return false.if(topElement !=this.mappings.get(c)){returnfalse;}}else{// If it was an opening bracket, push to the stack.
stack.push(c);}}// If the stack still contains elements, then it is an invalid expression.return stack.isEmpty();}}
作者:LeetCode
链接:https://leetcode-cn.com/problems/valid-parentheses/solution/you-xiao-de-gua-hao-by-leetcode/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。