একটি স্ট্রিং দেওয়া থাকলে, রিকারসিভ ফাংশন দিয়ে সেটি প্যালিনড্রোম কিনা চেক করতে হবে। প্যালিনড্রোম স্ট্রিং সামনে ও পেছন থেকে পড়লে একই হয়। দৈর্ঘ্য ০-ও প্যালিনড্রোম।
উদাহরণ
ইনপুট − Str = "malayalam"
আউটপুট − Input string is palindrome.
ইনপুট − Str = "tutorial"
আউটপুট − Input string is not a palindrome.
প্রোগ্রামে ব্যবহৃত পদ্ধতি
স্ট্রিং একক অক্ষর হলে প্যালিনড্রোম। অন্যথায় প্রথম ও শেষ অক্ষর তুলনা করে রিকারসিভভাবে বাঁকি চেক করুন।
ইনপুট
Str[]ও দৈর্ঘ্যlengthনিন।যদি
length == 0হয়,result = 1।অন্যথায়
result = checkPalindrome(Str, 0, length-1)।checkPalindrome(char str[], int first, int last)ফাংশন:
• যদিfirst < last+1হয়,first++, last--করে রিকারসিভ কল।
• যদিfirst == lastহয়, ১ ফেরত দিন।
• যদিstr[first] != str[last]হয়, ০ ফেরত দিন।
• অন্যথায় ১ ফেরত দিন।ফলাফল অনুযায়ী প্রিন্ট করুন।
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
int checkPalindrome(char str[], int first, int last){
if (first < last + 1){
first++;
last--;
return checkPalindrome(str, first, last);
}
if (first == last){
return 1;
}
if (str[first] != str[last]){
return 0;
}
return 1;
}
int main(){
char Str[] = "madam";
int result;
int length = strlen(Str);
if (length == 0){
result = 1;
}
else{
result = checkPalindrome(Str, 0, length - 1);
}
if (result == 1){
cout << "Input string is palindrome.";
}
else{
cout << "Input string is not a palindrome.";
}
return 0;
}
আউটপুট
উপরের কোড রান করলে নিচের আউটপুট পাওয়া যাবে:
Input string is palindrome.