We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
ArrayDeque is "likely to be faster than Stack when used as a stack" - Java documentation
importjava.util.Scanner;importjava.util.HashMap;importjava.util.ArrayDeque;classSolution{publicstaticvoidmain(String[]args){/* Create HashMap to match opening brackets with closing brackets */HashMap<Character,Character>map=newHashMap<>();map.put('(',')');map.put('[',']');map.put('{','}');/* Test each expression for validity */Scannerscan=newScanner(System.in);while(scan.hasNext()){Stringexpression=scan.next();System.out.println(isBalanced(expression,map)?"true":"false");}scan.close();}privatestaticbooleanisBalanced(Stringexpression,HashMap<Character,Character>map){if((expression.length()%2)!=0){returnfalse;// odd length Strings are not balanced}ArrayDeque<Character>deque=newArrayDeque<>();// use deque as a stackfor(inti=0;i<expression.length();i++){Characterch=expression.charAt(i);if(map.containsKey(ch)){deque.push(ch);}elseif(deque.isEmpty()||ch!=map.get(deque.pop())){returnfalse;}}returndeque.isEmpty();}}
Let me know if you have any questions.
Cookie support is required to access HackerRank
Seems like cookies are disabled on this browser, please enable them to open this website
Java Stack
You are viewing a single comment's thread. Return to all comments →
Java scalable solution using HashMap
From my HackerRank solutions.
ArrayDeque is "likely to be faster than Stack when used as a stack" - Java documentation
Let me know if you have any questions.