Строка содержит слово:

komar404

Строка содержит слово:а) дописать к его концу наименьшую последовательность символов так, чтобы слово стало палиндромом; б) выделить в строке самый длинный начальный отрезок, являющийся палиндромомОчень нужна помощь с этой задачей, помогите пожалуйста
1 ответ

komar404

#include <iostream>
#include <cstdlib>
#include <string>
bool Palindrom (std::string s){
    for (int i=0; i<=s.size()/2; i++)
        if (s[i]!=s[s.size()-i-1])
            return false;
    return true;
}
 
int main(){
std::string word, palindrom_part, unpalindrom_part;
std::cin>>word;
palindrom_part=word;
while (!Palindrom(palindrom_part))
{
    unpalindrom_part.insert(0, &palindrom_part[0], 1);
    palindrom_part.erase(0, 1);
}
palindrom_part=word;
word+=unpalindrom_part;
std::cout<<word<<std::endl;
while (!Palindrom(palindrom_part))
    palindrom_part.erase(palindrom_part.size()-1, 1);
std::cout<<palindrom_part;
}