Java - DISEÑAR UNA FUNCION

 
Vista:
sin imagen de perfil
Val: 32
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

DISEÑAR UNA FUNCION

Publicado por Francisco (17 intervenciones) el 16/11/2018 12:34:47
Como disenaríais una función que verifique si un vector es un palíndromo (el reverso del vector es lo mismo que un vector).


}
1
2
3
4
5
6
7
8
9
10
11
12
public static boolean istPalindrom(char[] word){
    int i1 = 0;
    int i2 = word.length - 1;
    while (i2 > i1) {
        if (word[i1] != word[i2]) {
            return false;
        }
        ++i1;
        --i2;
    }
    return true;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

DISEÑAR UNA FUNCION

Publicado por Billy Joel (876 intervenciones) el 18/11/2018 00:10:50
Si funciona, pero hay que eliminar los espacios en blanco
Yo también lo hice pero así:

1
2
3
4
5
6
7
8
9
public boolean isPalindromo(String word){
    char [] c = word.replace(" ", "").toCharArray();
    for (int i = 0; i < c.length; i++) {
        if(c[i] != c[c.length-1-i]){
            return false;
        }
    }
    return true;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 32
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

DISEÑAR UNA FUNCION

Publicado por Francisco (17 intervenciones) el 18/11/2018 00:13:29
¿Me podrías explicar detalladamente que es el cambio que has hecho? Para comprenderlo de mejor manera
Muchas gracias Billy
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

DISEÑAR UNA FUNCION

Publicado por Billy Joel (876 intervenciones) el 19/11/2018 16:55:53
A tu código no le hice ningún cambio, solo sugiero que no envíes espacios en blanco ya que esto puede hacer que se comparen caracteres con espacios en blanco. Por ejemplo el siguiente String
1
String word = "adan y eva, ave y nada";

La frase de arriba es un palindromo, pero para que funcione debemos eliminar los espacios en blanco antes de convertir a un array de chars
1
char [] c = word.replace(" ", "").toCharArray();


En mi código lo que yo hago es comparar el primer char con el ultimo, en la siguiente iteración se compara el segundo char con el penultimo y así sigue hasta que el ultomo char se compara con el primero.

En caso que alguno de estos chars sean diferentes entonces sabremos que el String no es un palindromo, de otro modo si.

Espero haberte ayudado.
Saludos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 32
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

DISEÑAR UNA FUNCION

Publicado por Francisco (17 intervenciones) el 19/11/2018 17:51:31
Muchas gracias Billy, ¿podría contactar contigo de manera más privada por si me viene alguna duda?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar