- #include <string> 
- #include <iostream> 
-   
- using namespace std; 
-   
- bool palindrome_internal( const string& s, string& reverse, int i ) 
- { 
-     if(i < s.size()){ 
-         reverse[i] = s[s.size()-(i+1)]; // first character in reverse is the last character in s 
-         palindrome_internal( s , reverse , i + 1); 
-     } 
-   
-     return s == reverse; 
- } 
-   
- bool Palindrome(const string& s ){ 
-     string reversed { s }; // initialized here 
-   
-     return palindrome_internal( s , reversed , 0 ); // And passed to recursive function 
- } 
-   
- int main() 
- { 
-     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 
- } 
-   
				I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmJvb2wgcGFsaW5kcm9tZV9pbnRlcm5hbCggY29uc3Qgc3RyaW5nJiBzLCBzdHJpbmcmIHJldmVyc2UsIGludCBpICkKewogICAgaWYoaSA8IHMuc2l6ZSgpKXsKICAgICAgICByZXZlcnNlW2ldID0gc1tzLnNpemUoKS0oaSsxKV07IC8vIGZpcnN0IGNoYXJhY3RlciBpbiByZXZlcnNlIGlzIHRoZSBsYXN0IGNoYXJhY3RlciBpbiBzCiAgICAgICAgcGFsaW5kcm9tZV9pbnRlcm5hbCggcyAsIHJldmVyc2UgLCBpICsgMSk7CiAgICB9CgogICAgcmV0dXJuIHMgPT0gcmV2ZXJzZTsKfQoKYm9vbCBQYWxpbmRyb21lKGNvbnN0IHN0cmluZyYgcyApewogICAgc3RyaW5nIHJldmVyc2VkIHsgcyB9OyAvLyBpbml0aWFsaXplZCBoZXJlCgogICAgcmV0dXJuIHBhbGluZHJvbWVfaW50ZXJuYWwoIHMgLCByZXZlcnNlZCAsIDAgKTsgLy8gQW5kIHBhc3NlZCB0byByZWN1cnNpdmUgZnVuY3Rpb24KfQoKaW50IG1haW4oKQp7CiAgICBjb3V0IDw8IFBhbGluZHJvbWUoICJleGFtcGxlIiApIDw8IGVuZGw7IC8vIE5vdCBwYWxpbmRyb21lCiAgICBjb3V0IDw8IFBhbGluZHJvbWUoICJyZXBhcGVyIiApIDw8IGVuZGw7IC8vIFBhbGluZHJvbWUKICAgIGNvdXQgPDwgUGFsaW5kcm9tZSggInJvdGF0b3IiICkgPDwgZW5kbDsgLy8gUGFsaW5kcm9tZQogICAgY291dCA8PCBQYWxpbmRyb21lKCAibWFkYW0iICkgPDwgZW5kbDsgLy8gUGFsaW5kcm9tZQogICAgY291dCA8PCBQYWxpbmRyb21lKCAiIiApIDw8IGVuZGw7IC8vIFBhbGluZHJvbWUKICAgIGNvdXQgPDwgUGFsaW5kcm9tZSggIiIgKSA8PCBlbmRsOyAvLyBQYWxpbmRyb21lCn0K