C++ Palindromy

0

Trochę się pogubiłem przy pisaniu programu rozpoznającego palindromy.
Bardzo proszę o wskazówkę.

Poniżej zamieszczam program

#include <iostream>
using namespace std;
 int main(void)
 {
  int i,j;
  i=0;
  string napis;
  cin>>napis;
  j=napis.length();
      
    do     
    {
     if(napis[i]==napis[j])
     { 
       i=i+1;
       j=j-1; 
      cout<<napis[i];
      cout<<napis[j];
     }
   
    }
    while(i>j);
    
  cin.get();
  cin.get();
 }
0

Masz dokładniejszą odpowiedź

#include <iostream>
using namespace std;
 int main(void)
 {
  int i,j;
  i=0;
  string napis;
  cin>>napis;
  int jest = 1;
  j = napis.length()-1;

    do
    {
     if(napis[i]==napis[j])
     {
       i=i+1;
       j=j-1;
     }
     else
     {
         jest = 0;
         break;
     }


    }
    while(j>i);
    cout << jest?"tak":"nie";
 }
0

Masz tutaj implementacje sprawdzania czy wyraz jest palindromem w kilku różnych językach, w tym C++ - nic tylko przepisać:

Czy wyraz jest palindromem? (swoją drogą - zagadka dnia: czemu to jest w kategorii python?)

Twój kod jest nieco bez sensu, na przykład fragment: wewnątrz pętli.

cout<<napis[i];
cout<<napis[j];
2
bool is_palindrome(const std::string& s)
{
    std::string tmp(s);
    std::reverse(tmp.begin(), tmp.end());
    return s == tmp;
}
2
bool isPalindrome(const std::string& s) {
    return equal(s.begin(), s.begin()+s.length()/2, s.rbegin());
}

http://ideone.com/YBvlK

0

Panowie bardzo dziękuję za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1