Advertisement
amermo

Provjerava da li je string palindrom

Mar 14th, 2015
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.25 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <cctype>
  4.  
  5. //Krampacki nacin, i nije bas efektan, posto ima dosta kopiranja, ali eto moze proci za manje stringove
  6.  
  7. /*bool DaLiJePalindrom(std::string s)
  8. {
  9.     std::string s1;
  10.     for(int i(0); i < s.length(); i++)
  11.         if(s[i] != ' ')
  12.             s1.push_back(s[i]);
  13.     std::string s2;
  14.     for(int i(s1.length()-1); i >= 0; i--)
  15.         s2.push_back(s1[i]);
  16.     for(int i(0); i < s1.length(); i++)
  17.         if(tolower(s1[i]) != tolower(s2[i]))
  18.             return false;
  19.     return true;
  20. }*/
  21.  
  22. //Vrlo elegantna varijanta provjeravanja, samo preskace sve sto nije slovo
  23.  
  24. bool DaLiJePalindrom(std::string s)
  25. {
  26.     if(s.length() == 0)
  27.         return false;
  28.     if(s.length() == 1)
  29.         return true;
  30.     for(int i(0), j(s.length()-1); i < j; i++, j--)
  31.     {
  32.         if(!isalpha(s[i]))
  33.             i++;
  34.         if(!isalpha(s[j]))
  35.             j--;
  36.         if(tolower(s[i]) != tolower(s[j]))
  37.             return false;
  38.     }
  39.     return true;
  40. }
  41.  
  42.  
  43. int main()
  44. {
  45.     std::string s;
  46.     std::cout << "Unesi neki string: " << std::endl;
  47.     std::getline(std::cin, s);
  48.     std::cout << "Uneseni string ";
  49.     DaLiJePalindrom(s) ? (std::cout << "je palindrom.") : (std::cout << "nije palindrom.");
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement