#include <string>
#include <iostream>
bool palindrome( const std::string& s, int i = 0 )
{
if ( i == s.size() )
return true;
return s[ i ] == s[ s.size() - i - 1 ] && palindrome( s , i + 1 );
}
int main()
{
using namespace std;
cout << palindrome( "example" ) << endl; // Not palindrome
cout << palindrome( "repaper" ) << endl; // Palindrome
cout << palindrome( "rotator" ) << endl; // Palindrome
cout << palindrome( "madam" ) << endl; // Palindrome
cout << palindrome( "" ) << endl; // Palindrome
cout << palindrome( "" ) << endl; // Palindrome
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKYm9vbCBwYWxpbmRyb21lKCBjb25zdCBzdGQ6OnN0cmluZyYgcywgaW50IGkgPSAwICkKewogICAgaWYgKCBpID09IHMuc2l6ZSgpICkKICAgICAgICByZXR1cm4gdHJ1ZTsKCiAgICByZXR1cm4gc1sgaSBdID09IHNbIHMuc2l6ZSgpIC0gaSAtIDEgXSAmJiBwYWxpbmRyb21lKCBzICwgaSArIDEgKTsKfQoKaW50IG1haW4oKQp7CiAgICB1c2luZyBuYW1lc3BhY2Ugc3RkOwogICAgY291dCA8PCBwYWxpbmRyb21lKCAiZXhhbXBsZSIgKSA8PCBlbmRsOyAvLyBOb3QgcGFsaW5kcm9tZQogICAgY291dCA8PCBwYWxpbmRyb21lKCAicmVwYXBlciIgKSA8PCBlbmRsOyAvLyBQYWxpbmRyb21lCiAgICBjb3V0IDw8IHBhbGluZHJvbWUoICJyb3RhdG9yIiApIDw8IGVuZGw7IC8vIFBhbGluZHJvbWUKICAgIGNvdXQgPDwgcGFsaW5kcm9tZSggIm1hZGFtIiApIDw8IGVuZGw7IC8vIFBhbGluZHJvbWUKICAgIGNvdXQgPDwgcGFsaW5kcm9tZSggIiIgKSA8PCBlbmRsOyAvLyBQYWxpbmRyb21lCiAgICBjb3V0IDw8IHBhbGluZHJvbWUoICIiICkgPDwgZW5kbDsgLy8gUGFsaW5kcm9tZQp9Cg==