I am reading the Algorithm Design Manual Second Edition and this is from an exercise question. Quoting the question
A common problem for comp
import java.util.Stack;
public class CheckBalancedParenthesis {
public static void main (String args[]){
CheckBalancedParenthesis checker = new CheckBalancedParenthesis();
System.out.println(checker.checkBalancedParenthesis("{}}{}{}{}{}"));
}
public boolean checkBalancedParenthesis(String pattern){
Stack stack = new Stack();
for(int i = 0; i < pattern.length();i++){
char c = pattern.charAt(i);
if(c == '{'){
stack.push(c);
}else if (c == '}'){
if(!stack.isEmpty()){
stack.pop();
} else{
System.out.println("Error at - " + i);
return false;
}
}
}
return stack.isEmpty();
}
}