Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   JAVA (https://www.clubdelphi.com/foros/forumdisplay.php?f=16)
-   -   Palindrome con pila de usuario (https://www.clubdelphi.com/foros/showthread.php?t=46632)

Armando25 05-08-2007 16:14:34

Palindrome con pila de usuario
 
Hola apenas estoy aprendiendo Java, me dejaron hacer una programa que verifique si una palabra es palindromo usando pilas de usuario. Este es el codigo de la pila de usuario que tengo pero no se como hacer el palindromo con esta pila. Ayuda...

class Stacks{
char pila[];
int tope;

public Stacks(int tamano){

pila= new char[tamano];
tope=-1;
}
public boolean estaVacia(){
return tope==-1;
}

public void insertar(char i){
if(tope++<pila.length){

pila[tope]=i;
}

}
public char quitar(){
if(estaVacia()) return '\u0000';
return pila[tope--];
}

}

public class Palindromo1{
public static void main(String args []){
System.out.println("Palabra");
String n=Teclado.readLine();
Stacks p= new Stacks(n.length());

for(int i=0;i<n.length();i++){
p.insertar(n.charAt(i));
}
while(!p.estaVacia()){
System.out.println("Quitando "+p.quitar());


}

}
}

Arcioneo 06-08-2007 15:14:18

No entiendo
 
De por si pegar codigo y esperar que uno lo lea y de respuestas es medio pesado, pero que un seudoalgoritmo te ayude...

1) Recibes la palabra y haces sus correspondientes verificaciones(ej. que no sea una cadena vacia) y la guardamos en una cadena llamemosla "cad1"

2) creamos una variable llamada "cad2"

3) Usamos la funcion cad1.toCharArray() para guardar la cadena en una cadena de caracteres

4) Nos metemos a un ciclo donde leamos ese arreglo obtenido leyendolo desde el fin hasta el inicio y cada carcater lo vamos agregando en la cadena "cad2"

5) Con el metodo "cad1.equals(cad2)" pues ya compruebas si es igual o no, espero sea de ayuda esto....:cool:

Arcioneo 06-08-2007 15:30:45

Ahi tienes
 
Código:

package javaapplication3;

public class Main {
   
      public static void main(String[] args) {       
        String cadenita = "";
        for(int con = 0; con < args.length; con++){
            cadenita += args[con];
        }
        String cadSinEspacios = "";
        //kitamos espacios en blanco
        for(int cont = 0; cont < cadenita.length(); cont++){
            if(cadenita.charAt(cont) != ' '){
                cadSinEspacios += cadenita.charAt(cont);
            }
        }
        String cadInvertida = reverseIt(cadSinEspacios);
        if(cadSinEspacios.equals(cadInvertida)){
            System.out.println("A huevo, es un palindromo");
        }
        else{
            System.out.println("Chale, no es un palindromo " + cadInvertida +".");
        }
    }
   
  private static String  reverseIt(String cad){
        String cadenaInvertida = "";
        for (int i = cad.length() - 1; i >= 0; i--){
            cadenaInvertida += cad.charAt(i);
        }           
        return cadenaInvertida;
    }   
}


Arcioneo 06-08-2007 15:31:46

Ese codigo ya funciona
 
Probado por la ciencia

Armando25 06-08-2007 18:48:59

Gracias Arcioneo
 
El codigo es de utilidad, solo que tiene que ser usando la pila que te mencione. no me acepta el programa asi, alguna sugerencia... de todos modos te agradezco la ayuda.

Arcioneo 07-08-2007 11:47:53

Explicate mas
 
No entiendo a que te refieres con eso de que "la pila", cual pila? la de tu código?

Eso no tiene nada de pila...

El único argumento que hace que algo sea una pila es la siguiente regla "el ultimo en entrar es el primero en salir", aunque quizas no estoy entendiendo tu pregunta


La franja horaria es GMT +2. Ahora son las 21:00:07.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi