Input:
{}()({()}){}([]
Output:
true true false true
Code:
ImportJava.util.Scanner;ImportJava.util.Stack;ImportJava.util.HashMap;classSolution { Public Static voidMain (string[] args) {/*Create HashMap to match opening & closing brackets*/HashMap<character, character> map =NewHashmap<>(); Map.put (‘(‘, ‘)‘); Map.put (‘[‘, ‘]‘); Map.put (‘{‘, ‘}‘); /*Test each expression for validity*/Scanner Scan=NewScanner (system.in); while(Scan.hasnext ()) {String expression=Scan.next (); System.out.println (isbalanced (expression, map)? "True": "false" ); } scan.close (); } Public Static Booleanisbalanced (String expression, Hashmap<character, character>map) { /*ODD length strings is not balanced*/ if((Expression.length ()% 2)! = 0) { return false; } Stack<Character> stack =NewStack<>(); for(inti = 0; I < expression.length (); i++) {Character ch=Expression.charat (i); if(Map.containskey (ch)) {Stack.push (CH); } Else if(Stack.isempty () | | ch! =Map.get (Stack.pop ())) { return false; } } returnStack.isempty (); }}
The Java instance determines whether the output parentheses appear in pairs