fork download
  1. #include <string>
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. bool palindrome_internal( const string& s, string& reverse, int i )
  7. {
  8. if(i < s.size()){
  9. reverse[i] = s[s.size()-(i+1)]; // first character in reverse is the last character in s
  10. palindrome_internal( s , reverse , i + 1);
  11. }
  12.  
  13. return s == reverse;
  14. }
  15.  
  16. bool Palindrome(const string& s ){
  17. string reversed { s }; // initialized here
  18.  
  19. return palindrome_internal( s , reversed , 0 ); // And passed to recursive function
  20. }
  21.  
  22. int main()
  23. {
  24. cout << Palindrome( "example" ) << endl; // Not palindrome
  25. cout << Palindrome( "repaper" ) << endl; // Palindrome
  26. cout << Palindrome( "rotator" ) << endl; // Palindrome
  27. cout << Palindrome( "madam" ) << endl; // Palindrome
  28. cout << Palindrome( "" ) << endl; // Palindrome
  29. cout << Palindrome( "" ) << endl; // Palindrome
  30. }
  31.  
Success #stdin #stdout 0s 4380KB
stdin
Standard input is empty
stdout
0
1
1
1
1
1