Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: indict en 11 Diciembre 2012, 20:13 pm



Título: vector simetrico (palíndromo)
Publicado por: indict en 11 Diciembre 2012, 20:13 pm
Crear un programa que dada una secuencia diga si es palíndromo,

palíndromo es secuencia simétrica, ejemplos: 1122, 12321, 1551, ...

Mi duda está en que si el vector no es palíndromo me imprime que no lo es , pero si SÍ lo es no imprime que lo sea.

Código:
#include<iostream>
#include<vector>
using namespace std;

bool palindromo(vector<int>v){
    int i=0, j=v.size()-1;
    while(i<j){
        if(v[i]!=v[j]){return false;}}
    return true;}
       

int main(){
    int n,e,i;
    cout<<"mida";
    cin>>n;
    vector<int>v(n);
    for (i=0;i<n;i++){
        cout<<" l'element "<<i<<" ... ";
        cin>>e;
        v[i]=e;}
   
    if (palindromo(v)){cout<<"el vector es simetrico"<<endl;}
    else {cout<<"el vector no es simetrico"<<endl;}
   
    system("pause");
    return 0;}

ˇGracias por la ayuda!


Título: Re: vector simetrico (palíndromo)
Publicado por: xiruko en 11 Diciembre 2012, 20:27 pm
nunca alteras la variable de control del while en tu funcion palindromo. prueba con:

Código
  1. if (v[i++] != v[j--]) return false;


Título: Re: vector simetrico (palíndromo)
Publicado por: indict en 11 Diciembre 2012, 20:43 pm
gracias xiruko :)


Título: Re: vector simetrico (palíndromo)
Publicado por: bemone en 16 Diciembre 2012, 22:39 pm
Código
  1. #include <iostream>
  2. #include <string>
  3. #include <algorithm>
  4.  
  5. using namespace std;
  6.  
  7. int main(int argc, char *argv[])
  8. {
  9. string str, str2;
  10. cin >> str;
  11.  
  12. size_t pos = str.find_first_of(" ");
  13. while(pos != string::npos){
  14. str.erase(pos);
  15. pos = str.find_first_of(" ");
  16. }
  17.  
  18. str2 = str.substr(0, str.length());
  19. reverse(str.begin(), str.end());
  20.  
  21. if(str2 == str)
  22. cout << "La frase '"<<str<<"' es palindroma." <<endl;
  23. else
  24. cout << "La frase '"<<str<<"' no es palindroma." <<endl;
  25.  
  26. system("pause");
  27.        return EXIT_SUCCESS;
  28. }