Check if the given string is Palindrome or not in C++
Understanding Palindrome
A palindrome is a string that reads the same forward and backward.
We will explore three different methods to check if a string is a palindrome using C++.
Method 1: Using a Loop
This method iterates through the string and checks if it is a palindrome.
#include <iostream> #include <algorithm> using namespace std; bool isPalindrome(string str) { int l = 0, r = str.length() - 1; while (l < r) { if (str[l] != str[r]) return false; l++, r--; } return true; } int main() { string str = "madam"; if (isPalindrome(str)) cout << "Palindrome" << endl; else cout << "Not a Palindrome" << endl; return 0; }
Output: Palindrome
Method 2: Using Recursion
This method checks palindrome property recursively.
#include <iostream> #include <algorithm> using namespace std; bool isPalindromeRecursive(string str, int l, int r) { if (l >= r) return true; if (str[l] != str[r]) return false; return isPalindromeRecursive(str, l + 1, r - 1); } int main() { string str = "racecar"; if (isPalindromeRecursive(str, 0, str.length() - 1)) cout << "Palindrome" << endl; else cout << "Not a Palindrome" << endl; return 0; }
Output: Palindrome
Method 3: Using String Reverse
This method reverses the string and compares it with the original.
#include <iostream> #include <algorithm> using namespace std; int main() { string str = "hello", rev = str; reverse(rev.begin(), rev.end()); if (str == rev) cout << "Palindrome" << endl; else cout << "Not a Palindrome" << endl; return 0; }
Output: Not a Palindrome