Advertisement
Guest User

Palindrome

a guest
Oct 27th, 2011
506
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.59 KB | None | 0 0
  1. //Programa Para Saber Si Una Cadena Es Palindrome Por: Jorge Chayan
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. void palindrome(int, int, string); //Metodo recursivo para saber si es palindrome
  6. int nospace(string *);  //Funcion para desplazar espacios al final de la cadena
  7.  
  8. int main()
  9. {
  10.     string cadena;
  11.     cout << "Ingrese Una Palabra: ";
  12.     getline(cin, cadena);
  13.     int n = nospace(&cadena);
  14.     //Cadena.length()-n-1: La Longitud DE Cadena Menos El NULL Y La Cant. De Espacios Al Final
  15.     palindrome(0, cadena.length()-n-1, cadena);
  16.     cin.get();
  17.     return 0;
  18. }
  19.  
  20. int nospace(string *cadena) //Ademas De Modificar Por Referecia La Cadena, Devuelve "n"
  21. {                           //(Numero De Espacios Detectados En La Cadena)
  22.     int n = 0;
  23.     //Como Es Puntero, Se Debe Especificar Que Se Trata De La Pos[0] (unica fila):
  24.     for (int i = 0; i < cadena[0].length(); i++)
  25.         if (cadena[0][i] == ' ')
  26.         {
  27.             /*Cade Vez Que Haya Un Espacio Desplaza Toda La Cadena A Partir De Alli
  28.              En Adelante:*/
  29.             for (int j = i; j < cadena[0].length(); j++) cadena[0][j] = cadena[0][j+1];
  30.             n++; //Cuenta Espacios
  31.         }
  32.     return n;
  33. }
  34.  
  35. void palindrome(int a, int b, string cad)
  36. {
  37.      //Si Hubo El Mismo Avance De Izq. A Der. Es Palindrome:
  38.      if (a == b) cout << "\nEs Palindrome!";
  39.      //Si coinciden: hacer llamado recursivo para la siguiente posicion (a+1 y b-1):
  40.      else if (cad[a] == cad[b]) palindrome(++a, --b, cad);
  41.      //Si No coinciden el algun momento: no es palindrome:
  42.      else cout << "\nNo Es Palindrome!";
  43. }
  44.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement