Como saber si una palabra es palindromo en c++

Publicado el 19 junio 2015 por Francves


Un ejercicio bastante interesante sobre arreglos de caracteres en el de determinar sí una palabra es palíndromo o no. Un palíndromo es aquella palabra o frase que es leída igual hacia adelante y hacia atrás. Ejemplo:
Arepera es un palíndromo
Ojo es un palíndromo
avión no es palíndromo puesto que si la leemos de atrás hacia adelante leemos nóiva.
Habíamos escrito antes sobre como  determinar si una palabra es palíndromo, en esta ocasión lo haremos con un algoritmo distinto.
#include <iostream>
using namespace std;
int main() {
// your code goes here
int I = 0;
string palabra;
cin >> palabra;
int J = palabra.length() - 1;
int mitad = J / 2;
while(palabra[I] == palabra[J]){
if(mitad == I){
cout << "Es palindromo";
break;
}
J--;
I++;
}
if(mitad != I)
cout << "No es palindromo";
return 0;
}

El algoritmo se encargará de comparar el primer caracter con el último, luego el segundo con el penultimo y así sucesivamente hasta llegar a la mitad de la palabra. Sí no encuentra ningún caracter distinto imprime que es palíndromo, si encuentra caracteres distintos se saldrá del ciclo while e imprimirá un mensaje indicando que la palabra no es un palíndromo. Leeremos la palabra y la guardaremos en una variable de tipo string, luego guardaremos la longitud de la cadena -1 para saber la posición del último caracter. Posterior a esto iremos comparando desde el primero hasta el útlimo caracter.
Ejemplo:
Palabra: Arepera
Longitud = 7
7 - 1 = 6 (última posición)
A R E P E R A
0 1 2 3 4 5 6
A = A
R = R
E = E
P = P
Imprimimos: Es palíndromo
Palabra: Avión
Longitud = 5
5 - 1 = 4 (última posición)
A v i ó n
0 1 2 3 4
A = n  (son distintos)
Imprimimos: No es palíndromo
También te podría interesar:
  1. De sistema decimal a sistema binario en c++ y Java
  2. 3 libros sobre programacion orientada a objetos
  3. [Ejercicio resuelto c++ POO Herencia Vectores MVC] Una Asociación de Lancheros trasladan turistas