Pilha em java

Preciso alguém pode me ajudar com a criação de um programa que receba como parametro uma cadeia de caracteres representados por uma sequência de parêntesis e colchetes. A função deve retorna um valor lógico verdadeiro ou falso caso esteja agrupado corretamente e falso caso errado. Considerando é claro que a pilha possui 3 operações puxh(x), pop e top.

por exemplo:

[((]]) - falso
([()] - falso
)[]((()) - falso
(([])) - verdadeiro

Ficarei grato com a ajuda.

Afinal, o que você precisa? De uma pilha, ou de uma pilha aplicada na solução do seu problema?
Poste o que já fez. Esse é o seu segundo tópico que vejo em menos de 15 minutos onde vc expõe seu problema, mas não apresenta o que você fez nem o que pensou em fazer.

[]'s

Sua tarefa agora é entender o que está acontecendo, implementar sua pilha e substituir pela pilha que usei.

[code]import java.util.EmptyStackException;
import java.util.Stack;

/**
*

  • @author dbuzatto
    */
    public class Teste {

    /**

    • @param args the command line arguments
      */
      public static void main(String[] args) {

      String[] cadeias = {
      “[((]])”,
      “([()]”,
      “)[]((())”,
      “(([]))”,
      “()[()()()()()()[()(((([][()]))))()]]” };

      for ( String c : cadeias ) {
      System.out.println( c + " - " + isBalanceada( c ) );
      }

    }

    public static boolean isBalanceada( String cadeia ) {

     Stack<Character> pilha = new Stack<Character>();
     
     try {
         for ( char c : cadeia.toCharArray() ) {
             if ( c == '(' || c == '[' ) {
                 pilha.push( c );
                 continue;
             }
             if ( ( c == ')' && pilha.peek() == '(' ) ||
                     ( c == ']' && pilha.peek() == '[' ) )
                 pilha.pop();
         }
     } catch ( EmptyStackException exc ) {
         return false;
     }
     
     return pilha.isEmpty();
    

    }
    }[/code]

Essa é uma solução onde a lógica deixa o programa bem simples.

Já uma pilha pronta com a funcionalidade de
inserir - push
visualizar topo - top
remover topo - pop

você fará o seguinte: a solução nesse caso só será válida quando a pilha estiver vazia,
caso contrário será falsa.

Quando inserir algo na pilha, tipo “(”, ao ler o próximo você verifica se fecha esse parêntese,
caso fecha você remove o item que está no topo da pilha. Caso não fecha você fará a comparação
do que foi lido com o próximo da lista. E assim vale também para colchetes.