Programa Palindrome en Java | Programa Java para comprobar Polindrome
Publicado: 2021-02-26Tabla de contenido
Introducción
Java ha ganado mucho protagonismo entre los programadores debido a su simplicidad, arquitectura neutral, independencia de la plataforma, ejecución distribuida y reutilización. Además, Java tiene muchas bibliotecas predefinidas para una programación perfecta. Y todos estarán entusiasmados de codificar en ese lenguaje.
Ahora, llegando a nuestro tema, vamos a escribir un código Java para verificar si la entrada dada es un palíndromo o no.
Se dice que un número o palabra es un palíndromo si permanece igual después de invertirlo. Y podemos implementar una solución tanto iterativamente como recursivamente. ¡Entonces empecemos!
Código iterativo de Java
La idea es simple; declararemos una variable 'inversa' que almacena el número inverso de nuestra entrada.
Multiplicaremos la variable inversa por 10 (para llenar la posición de la unidad con 0) en cada iteración. Luego, sumaremos el resto del número de entrada después de dividirlo por 10. Después de sumar el resto, dividiremos el número de entrada entre 10 (para eliminar el número en la posición de la unidad).
Detendremos el algoritmo anterior cuando el número de entrada se convierta en 0, y el número presente en la variable inversa será el reverso del número de entrada.
grado superior de clase pública{
public static void main(String[] args) {
entero n=12221;
int inversa=0;
temperatura interna=n;
while(temp>0){
reversa=reversa*10;
reversa=reversa+temp%10;
temperatura=temperatura/10;
}
si (inverso == n)
System.out.print(n+” es un palíndromo”);
demás
System.out.print(n+” no es un palíndromo”);
}
}
En el código anterior, hemos declarado una variable 'n' que almacena el número inicial, y tenemos que comprobar si el número n es un palíndromo o no. En el ciclo while, seguiremos el algoritmo que hemos discutido anteriormente. Y por último, estamos comprobando si el número invertido es igual al número inicial o no. Si el número cambiado y los números iniciales son similares, lo estamos imprimiendo como un palíndromo, no como un palíndromo.
Ahora, este código funcionará solo para una entrada de número entero. Y si queremos verificar si una palabra dada es un palíndromo o no, tenemos que lidiar con eso usando cadenas. Y aquí está el código para hacer eso.
grado superior de clase pública{
public static void main(String[] args) {
Cadena s=”rotor”;
Cadena inversa=nueva Cadena();
for(int i=s.longitud()-1;i>=0;i–)
inversa=reversa+s.charAt(i);
if(s.equals(reverse))
System.out.print(s+” es un palíndromo”);
demás
System.out.print(s+” no es un palíndromo”);
}
}
En el código anterior, agregamos los caracteres de la cadena inicial desde la cola hasta la cabeza a la cadena inversa y verificamos si es igual a la cadena inicial o no. Hemos codificado la cadena con una palabra, pero podemos inicializarla con la entrada del usuario usando la clase de escáner.
Código Java recursivo
En esta implementación, vamos a comparar el primer y el último carácter. Y si son iguales, recurra más para la cadena restante.
Pero esta lógica no funcionará para las cadenas que tienen un número impar de caracteres. Entonces, si incluimos un caso base, donde concluimos una cadena como un palíndromo, si la longitud de una cadena es uno, es decir, la posición del primer y último carácter es la misma. Esto solucionaría nuestro problema con las cadenas de tamaño impar porque recurrimos al elemento del medio y luego lo concluimos como un palíndromo, ya que solo queda un carácter en el medio.
grado superior de clase pública{
public static boolean isPalindrome(String str, int low, int high){
si (bajo == alto)
devolver verdadero;
if(str.charAt(bajo)!=str.charAt(alto))
falso retorno;
si (alto-bajo> 1)
return isPalindrome(str,low+1,high-1);
devolver verdadero;
}
public static void main(String[] args) {
Cadena s1=”rotor”;
String s2=”programación”;
System.out.println(isPalindrome(s1,0,s1.length()-1));
System.out.println(isPalindrome(s2,0,s2.length()-1));
}
}
En el código anterior, hemos escrito una función que espera una cadena, dos enteros como parámetros. Y los dos números enteros, bajo, alto son los punteros que llevan la cuenta de los caracteres que deben verificarse. Y si los nombres en la posición alta y baja son iguales.
llamaremos a la misma función con parámetros actualizados de modo que la cadena se reduzca de ambos lados en un carácter. Y si los punteros low y high se encuentran entre sí o un solo carácter está presente entre ellos, entonces hemos llegado hasta la mitad de la cadena y concluyéndola como un palíndromo.
Ahora, hagamos un simulacro del código para la cadena "rotor". Inicialmente, el mínimo es 0 y el máximo es 4. Dado que el carácter en la posición 0 ('r') es igual al carácter en la posición 4 ('r'), haremos una llamada recursiva con bajo actualizado como bajo +1 y alto actualizado como alto-1.
Ahora, bajo es 1 y alto es 3, ya que los caracteres en esas posiciones son iguales, nuevamente haremos una llamada recursiva. Ahora el bajo es 2 y el alto es 2, y activa el caso base donde el bajo es equivalente al alto, por lo que devolveremos verdadero.
También podemos implementar una función recursiva para verificar si un número entero es un palíndromo o no, y este es el proceso para hacerlo.
booleano estático isPalindrome(int n, int rev, int temp){
si (temperatura == 0)
devuelve n==rev;
revolución = revolución * 10;
return esPalíndromo(n,rev+temp%10,temp/10);
}
Tenga en cuenta que, en la función anterior, inicialmente n y temp son iguales. Porque al final, tenemos que comparar el número inverso con el número inicial, por lo que todos los cálculos se realizan en la misma variable. El número inicial no debe ser alterado.
Lea también: Ideas y temas de proyectos Java
Aprenda cursos de software en línea de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.
Conclusión
Entendimos la definición de palíndromo, analizamos códigos iterativos y recursivos para verificar si una cadena/número es un palíndromo o no. Conocemos el código por un simulacro de ejemplo de muestra. Ahora que sabe cómo implementar un código para comprobar el palíndromo, intente implementarlo usando la clase de escáner e intente codificarlo usando los conceptos de programación orientada a objetos.
Si desea mejorar sus habilidades de Java, debe tener en sus manos estos proyectos de Java. Si está interesado en obtener más información sobre Java, desarrollo de pila completa, consulte el programa Executive PG de upGrad & IIIT-B en desarrollo de software de pila completa, que está diseñado para profesionales que trabajan y ofrece más de 500 horas de capacitación rigurosa, 9+ proyectos y asignaciones, estado de exalumno de IIIT-B, proyectos finales prácticos prácticos y asistencia laboral con las mejores empresas.
¿Qué es un palíndromo?
La oración palindrómica es una composición literaria, frase, verso o palabra, que se lee al revés o al derecho. Un palíndromo es un tipo de juego de palabras, específicamente una palabra o frase (oración) que se lee igual hacia adelante o hacia atrás. Un palíndromo es una palabra, frase, número u otra secuencia de caracteres que se lee igual hacia adelante o hacia atrás. Por ejemplo, ¡Un hombre, un plan, un canal, Panamá! es un palíndromo. Algunos palíndromos no son palabras, como el número 106601. Algunos palíndromos son frases, como Señora, soy Adán.
¿Cómo prepararse para una entrevista de Java?
Si quiere ser un experto en Java, primero debe asegurarse de que algunas cosas estén en orden. En primer lugar, debe tener un buen conocimiento práctico del lenguaje Java. En segundo lugar, debe tener una buena comprensión de la API de Java. No es necesario que tenga un dominio absoluto de la API, pero debe tener una comprensión de lo que está disponible y cuándo usar qué clase. Finalmente, debe tener un conocimiento profundo de la máquina virtual de Java. Por ejemplo, debería poder escribir un intérprete para un lenguaje simple. Si está entrevistando para un puesto de desarrollo de compiladores, está libre.
¿Cómo escribir buenos programas Java?
Algunas de las mejores prácticas al escribir el programa en Java son: Siempre use 'clase pública' para iniciar la clase. Nunca use 'public static void main' dentro de una clase. Nunca use la palabra clave 'this' dentro de la clase. Nunca use el modificador 'final' en los métodos. Nunca use el modificador 'estático' en las variables de instancia. Nunca haga que las variables sean 'públicas' a menos que sea absolutamente necesario. Siempre tenga una buena convención de nomenclatura. Nunca haga una variable de más de una letra con un sufijo numérico. Evite hacer variables con más de una palabra. Nunca use la palabra clave 'this' dentro del método. Nunca use la palabra clave 'romper'.