Favor ajudem!

3 respostas
S

Galera sera que alguem sabe fazer um programa que utiliza uma pilha para determinar se um texto é um palíndromo, ou seja, o texto é soletrado identicamente do início para o fim e do fim para o início.



Preciso disto para hoje 8O

3 Respostas

G

Cara, tu poderia fazer da seguinte maneira: pega o texto e copia ele, de traz pra frente, caracter por caracter, em uma nova string… daí usa o método

equals(), pra ver se são iguais … se forem iguais, o texto é palindromo…

barbada

D
Cara, respondi essa sua pergunta em outro Forum, mas caso vc olhe aki primero





isso  com cara de trabalho para Faculdade, então ai vai um exercício q eu fiz ano passado.  escrito em Pascal, mas se a matéria não for Java vai servir, se for, bem, a lógica é a mesma.


O meu exercício era mais complexo que isso então eu dei uma adaptada e não testei, portanto pode ser que de algum pau de sintax, ms a lógica é essa.


Qualquer problema Grita!





Código:





uses crt;





{inicio da extrutura de pilha}





type tpilha = record


vet: array[1…200] of char;


topo: integer;


end;





var p1 : tpilha;


s1 : string;


s2 : string;





procedure inicio; forward;





procedure init(var p:tpilha);


begin


p.topo:=0;


end;





function isempty(p:tpilha):boolean;


begin


isempty:=(p.topo=0);


end;





function isfull(p:tpilha):boolean;


begin


isfull:=(p.topo=200);


end;





procedure push(var p:tpilha;elem:char);


begin


if isfull§ then


begin


writeln(´OVERFLOW);


readln;


halt;


end


else


begin


p.topo:=p.topo+1;


p.vet[p.topo]:=elem;


end;


end;





function pop(var p:tpilha): char;


begin


if isempty§ then


begin


writeln(´UNDERFLOW);


readln;


halt;


end


else


begin


popc:=p.vet[p.topo];


p.topo:=p.topo-1;


end;


end;





function top(p:tpilha): char;


begin


top:=p.vet[p.topo];


end;





{fim da estrutura de pilha}





procedure verifica();


begin


for i:=1 to length(s1) do


begin


push(p1,s1[i]);


end;


while (not isempty(p1)) do


begin


s2:= s2+pop(p1);


end;


if (s2=s1) then


begin


writeln(´palíndromo´);


end


else


begin


writeln(´não palíndromo´);


end;


inicio;


end;





procedure inicio;


begin


s1:=´´;


s2:=´´;


init(p1);


write(´ Entre com uma expresao: ´);


readln(s1);


if e<>´´ then verifica(p1,s1);


end;





begin


clrscr;


inicio;


end.
S

valeu galera ajudaram muito!!!

Surubion

Criado 24 de abril de 2003
Ultima resposta 28 de abr. de 2003
Respostas 3
Participantes 3