Check for balanced parentheses in an expression using Java
This is the Java solution to check if an expression is balanced, i.e, the number of left and right parentheses should be equal.
static String isExpressionBalanced(String s) { String result = "NOT BALANCED!"; ArrayList<String> al = new ArrayList<String>(); for(int i = 0; i < s.length(); i++) { if(s.charAt(i) == '(' || s.charAt(i) == '{' || s.charAt(i) == '[') { al.add(Character.toString(s.charAt(i))); } else if(s.charAt(i) == ')' || s.charAt(i) == '}' || s.charAt(i) == ']') { if(al.size() != 0 && al.get(al.size()-1).equals("(") && s.charAt(i) == ')') { al.remove(al.size()-1); } else if(al.size() != 0 && al.get(al.size()-1).equals("{") && s.charAt(i) == '}') { al.remove(al.size()-1); } else if(al.size() != 0 && al.get(al.size()-1).equals("[") && s.charAt(i) == ']') { al.remove(al.size()-1); } else { return result = "NOT BALANCED"; } } } if(al.isEmpty() == true) { return result = "YES, BALANCED!"; } return result; } }