Program to Check if Given String is Palindrome or Not using Recursion
- Write a program to Check if Given String is Palindrome or Not using Recursion in C
- Write a program to Check if Given String is Palindrome or Not using Recursion in C++
- Write a program to Check if Given String is Palindrome or Not using Recursion in Python
- Write a program to Check if Given String is Palindrome or Not using Recursion in PHP
- Write a program to Check if Given String is Palindrome or Not using Recursion in Java
- Write a program to Check if Given String is Palindrome or Not using Recursion in Java Script
- Write a program to Check if Given String is Palindrome or Not using Recursion in C#
Explanation:
Using recursion, we compare the string’s start and end characters to determine whether it is a palindrome. We recursively inspect the remainder of the string (apart from the initial and last characters) to see if they are the same. The string is not a palindrome if the characters don’t match at any point.
Steps:
- Base Case:
- If the string is empty or has only one character, it’s automatically a palindrome.
- Recursive Case:
- Compare the first character and the last character of the string.
- If they match, check the remaining substring (i.e., remove the first and last characters and call the function recursively).
- If at any point the characters don’t match, the string is not a palindrome, and return False.
- Stopping Condition:
- The recursion stops when the string has only one character or is empty, which indicates the string is a palindrome.
Program to Check if Given String is Palindrome or Not using Recursion
-
C
-
C++
-
Python
-
PHP
-
JAVA
-
Java Script
-
C#
#include <stdio.h>
#include <string.h>
int check_palindrome(char str[], int start, int end) {
if (start >= end)
return 1;
if (str[start] != str[end])
return 0;
return check_palindrome(str, start + 1, end - 1);
}
int main() {
char str[100];
printf("Enter a string: ");
fgets(str, sizeof(str), stdin);
// Remove newline character if present
str[strcspn(str, "\n")] = '\0';
int length = strlen(str);
if (check_palindrome(str, 0, length - 1))
printf("'%s' is a palindrome.\n", str);
else
printf("'%s' is not a palindrome.\n", str);
return 0;
}
#include <iostream>
#include <string>
using namespace std;
bool check_palindrome(string str, int start, int end) {
if (start >= end)
return true;
if (str[start] != str[end])
return false;
return check_palindrome(str, start + 1, end - 1);
}
int main() {
string str;
cout << "Enter a string: ";
getline(cin, str);
if (check_palindrome(str, 0, str.length() - 1))
cout << "'" << str << "' is a palindrome." << endl;
else
cout << "'" << str << "' is not a palindrome." << endl;
return 0;
}
<div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950"><div class="overflow-y-auto p-4" dir="ltr"><code class="!whitespace-pre hljs language-python">def check_palindrome(str, start, end):
if start >= end:
return True
if str[start] != str[end]:
return False
return check_palindrome(str, start + 1, end - 1)
str = input("Enter a string: ")
if check_palindrome(str, 0, len(str) - 1):
print(f"'{str}' is a palindrome.")
else:
print(f"'{str}' is not a palindrome.")
<?php
function check_palindrome($str, $start, $end) {
if ($start >= $end)
return true;
if ($str[$start] != $str[$end])
return false;
return check_palindrome($str, $start + 1, $end - 1);
}
echo "Enter a string: ";
$str = trim(fgets(STDIN));
if (check_palindrome($str, 0, strlen($str) - 1))
echo "'$str' is a palindrome.\n";
else
echo "'$str' is not a palindrome.\n";
?>
import java.util.Scanner;
public class Main {
public static boolean check_palindrome(String str, int start, int end) {
if (start >= end)
return true;
if (str.charAt(start) != str.charAt(end))
return false;
return check_palindrome(str, start + 1, end - 1);
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a string: ");
String str = scanner.nextLine();
if (check_palindrome(str, 0, str.length() - 1))
System.out.println("'" + str + "' is a palindrome.");
else
System.out.println("'" + str + "' is not a palindrome.");
}
}
function check_palindrome(str, start, end) {
if (start >= end)
return true;
if (str[start] !== str[end])
return false;
return check_palindrome(str, start + 1, end - 1);
}
const str = prompt("Enter a string:");
if (check_palindrome(str, 0, str.length - 1))
console.log(`'${str}' is a palindrome.`);
else
console.log(`'${str}' is not a palindrome.`);
<div class="contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950"><div class="overflow-y-auto p-4" dir="ltr"><code class="!whitespace-pre hljs language-csharp">using System;
class Program {
static bool CheckPalindrome(string str, int start, int end) {
if (start >= end)
return true;
if (str[start] != str[end])
return false;
return CheckPalindrome(str, start + 1, end - 1);
}
static void Main() {
Console.Write("Enter a string: ");
string str = Console.ReadLine();
if (CheckPalindrome(str, 0, str.Length - 1))
Console.WriteLine($"'{str}' is a palindrome.");
else
Console.WriteLine($"'{str}' is not a palindrome.");
}
}