public class Stack extends MyArrayList { public T peek() { if(size==0) return null; //throw new NoSuchElementException("whatever"); return A[size-1]; } public T pop() { T tmp=peek(); size--; return tmp; } public void push(T item) { add(item); } //1-based index from the top of stack //if o is not in stack, return -1 public int search(Object o) { if(size==0) return -1; for(int i=size-1;i>=0;i--) { if(A[i]==o) { return size-i; } } return -1; } public void print() { System.out.print("["); for(int i=0;i}])<[{}]>)", "((())", "", "[(])", "{(<[{<{<>{}>}}]){}}", "{(<>[{<>}]){}}" }; for(int j=0;j S=new Stack<>(); for(int i=0;i') { if(S.peek()=='<') S.pop(); else{ balanced=false; break; } } else if(c==')') { if(S.peek()=='(') S.pop(); else{ balanced=false; break; } } else if(c=='}') { if(S.peek()=='{') S.pop(); else{ balanced=false; break; } } else if(c==']') { if(S.peek()=='[') S.pop(); else{ balanced=false; break; } } }//end of for i if(S.size()!=0) balanced=false; if(balanced) System.out.println(Y+" is balanced size="+S.size()); else System.out.println(Y+" is NOT balanced size="+S.size()); }//end of for j // S.push("abc"); // S.push("gmu"); // S.push("is"); // S.push("the"); // S.push("best"); // S.pop(); // S.push("bestest"); // S.print(); } }