public void Exercicio() { Console.Clear(); String sequenciaBase, sequenciaFinal, comando; Console.Write("Sequência Base: "); sequenciaBase = Console.ReadLine(); Console.Write("Sequência Final: "); sequenciaFinal = Console.ReadLine(); Console.Write("Sequência de Comandos: "); comando = Console.ReadLine(); int aux = 0, sequenciaBasePosicao = 0, sequenciaNovaPosicao = 0; char[] sequenciaNovaChar = new char[sequenciaFinal.Length]; Pilha pilha = new Pilha(comando.Length); while (aux < comando.Length) { if (comando[aux].Equals('I') || comando[aux].Equals('i')) { pilha.push(sequenciaBase[sequenciaBasePosicao]); sequenciaBasePosicao++; } else if (comando[aux].Equals('R') || comando[aux].Equals('r')) { sequenciaNovaChar[sequenciaNovaPosicao] = pilha.pop(); sequenciaNovaPosicao++; } else { Console.WriteLine("Comando inválido. Insira somente I ou R.\n"); return; } aux++; } String sequenciaNova = new String(sequenciaNovaChar); if (sequenciaNova == sequenciaFinal) { Console.WriteLine("\nO resultado dos comandos é igual à sequência final.\n"); } else { Console.WriteLine("\nO resultado dos comandos não é igual à sequência final.\n"); } }
public void Exercicio() { Console.Clear(); Console.Write("Insira uma frase: "); String frase = Console.ReadLine(); // Lê a frase Pilha p = new Pilha(frase.Length); Fila f = new Fila(frase.Length); int aux = 0; foreach (char c in frase) { if (c.Equals(' ') || c.Equals(',') || c.Equals('.') || c.Equals(':') || c.Equals('-')) { } else { p.push(c); f.push(c); // Envia à fila e pilha somente letras do alfabeto } } char[] pilhaC = new char[frase.Length]; char[] filaC = new char[frase.Length]; while (!p.isEmpty() && !f.isEmpty()) { pilhaC[aux] = p.pop(); filaC[aux] = f.pop(); aux++; // Retorna as frases em ordem normal e invertida } String novaFrase = new String(filaC); String novaFraseInvertida = new String(pilhaC); // Compara as duas frases if (novaFrase == novaFraseInvertida) { Console.WriteLine("É um palíndromo\n"); } else { Console.WriteLine("Não é um palíndromo\n"); } }
public Fila(int tam) { vetor = new char[tam]; fim = -1; p = new Pilha(tam); }