static bool ValidarSequencia(string sequencia) { Pilha pilha = new Pilha(); for (int pos = 0; pos < sequencia.Length; pos++) { if (pilha.Vazia()) { pilha.Empilhar(new Caracter(sequencia[pos])); } else { Caracter caracterTopoPilha = (Caracter)pilha.ConsultarTopo(); if (ComplementaParenteses(caracterTopoPilha.Letra, sequencia[pos])) { pilha.Desempilhar(); //completar, retira } else { pilha.Empilhar(new Caracter(sequencia[pos])); //senão, insere } } } return(pilha.Vazia()); //Se a pilha estiver vazia, todos os parentesês se complementam }