expression validation using stack code example

Example: bracket balance java

// for Java

class Parser{
    static HashMap<Character,Character> bracket_map = new HashMap<>();

    static {
        bracket_map.put(')', '(');
        bracket_map.put('}','{');
        bracket_map.put(']','[');
    }
    
    boolean isBalanced(String s){
            
        Stack<Character> stack = new Stack<>();
        char temp;
        for (int i = 0; i < s.length(); i++) {
            temp = s.charAt(i);
            if(temp == '{' || temp == '[' || temp == '('){
                stack.push(temp);
            }else {
                if(stack.isEmpty() || stack.peek() != bracket_map.get(temp)) return false;
                stack.pop();
            }
        }
        return stack.isEmpty();
    }
}

Tags:

Cpp Example