Witam,
mam problem z jednym zadanie o nazwie Prefiks Palindrom (c++). Jego polecenie brzmi: Napis t jest prefiksem napisu s, jeśli istnieje taki napis y, że s=ty (czyli s jest złączeniem, inaczej mówiąc konkatenacją napisów t i y). Przy czym y może być słowem o zerowym rozmiarze. Napisz program, który dla podanego napisu znajdzie możliwie najdłuższy prefiks który jest palindromem.
Tak więc dla wyrazu obok odpowiedzią będzie 3, dla wyrazu obobok - 5, a dla wyrazu stok - 1.
Mój program działa tylko w wypadku, gdy literki się nie pokrywają, tj. dla powyższych przykładów będzie działał, ale już dla oboko naliczy z jakiegoś powodu 7...
Proszę o pomoc.
#include <iostream>
#include <string>
using namespace std;
int main()
{
int wynik=0;
string s;
cin>>s;
for (int j=s.size()-1; j>0; j--)
{
for (int i=0; i<s.size(); i++)
{
if (s[j]==s[i]) wynik++;
else break;
}
}
wynik=2*wynik;
wynik++;
cout<<wynik;
return 0;
}