একটি অ্যারে arr[n] দেওয়া থাকলে যেখানে n হলো অ্যারের সাইজ, টাস্ক হলো রিকার্শন ব্যবহার করে বের করা যে অ্যারেটি প্যালিনড্রোম কিনা। প্যালিনড্রোম হলো এমন একটি সিকোয়েন্স যা উল্টে এবং সোজা দুভাবেই একই পড়া যায়, যেমন: MADAM, NAMAN, ইত্যাদি।
সুতরাং একটি অ্যারে প্যালিনড্রোম কিনা চেক করতে আমরা অ্যারেটি পিছন থেকে এবং সামনে থেকে ট্রাভার্স করতে পারি −

রিকার্শনে ও আমাদের start এবং end ভ্যালু পরিবর্তন করতে হবে যতক্ষণ না তারা সমান হয় অথবা start এবং end-এ ভ্যালু সমান না হয়ে যাওয়া পর্যন্ত, তারপর এক্সিট করে false রিটার্ন করব যে দেওয়া অ্যারেটি প্যালিনড্রোম নয়।
উদাহরণ
ইনপুট: arr[] = { 2, 3, 4, 3, 2} আউটপুট: Yes, the array is Palindrome
ব্যাখ্যা: অ্যারেটি শুরু (2, 3, 4, 3, 2) এবং শেষ (2, 3, 4, 3, 2) থেকে একই।
ইনপুট: arr[] = {1, 2, 3, 4} আউটপুট: No, the array is not Palindrome
ব্যাখ্যা: অ্যারেটি শুরু (1, 2, 3, 4) এবং শেষ (4, 3, 2, 1) থেকে একই নয়।
নিচে ব্যবহৃত পদ্ধতি −
আমরা রিকার্সিভলি নিচের ধাপগুলো করব −
- চেক করুন arr[start] == arr[end] এবং start < end
- start কে ১ বাড়ান এবং end কে ১ কমান।
- ধাপ ১-এ ফিরে যান।
অ্যালগরিদম
Start
function int palindrome(int arr[], int start, int end) এ
ধাপ ১ → If start >= end then,
Return 1
ধাপ ২ → If arr[start] == arr[end] then,
Return palindrome(arr, start + 1, end - 1)
ধাপ ৩ → Else {
Return 0
function int main() এ
ধাপ ১ → অ্যারে arr[] ডিক্লেয়ার ও ইনিশিয়ালাইজ
ধাপ ২ → n = sizeof(arr) / sizeof(arr[0]) ডিক্লেয়ার ও ইনিশিয়ালাইজ
ধাপ ৩ → If palindrome(arr, 0, n - 1) == 1 then,
Print "Yes, the array is Palindrome"
ধাপ ৪ → Else
Print "No, the array is not Palindrome"
Stop
উদাহরণ
#include <stdio.h>
// রিকার্সিভ প্যালিনড্রোম ফাংশন যা ১ রিটার্ন করে যদি
// প্যালিনড্রোম হয়, ০ যদি না হয়
int palindrome(int arr[], int start, int end) {
// বেইস কেস
if (start >= end) {
return 1;
}
if (arr[start] == arr[end]) {
return palindrome(arr, start + 1, end - 1);
} else {
return 0;
}
}
// Driver code
int main() {
int arr[] = { 1, 2, 0, 2, 1 };
int n = sizeof(arr) / sizeof(arr[0]);
if (palindrome(arr, 0, n - 1) == 1)
printf("Yes, the array is Palindrome\n");
else
printf("No, the array is not Palindrome\n");
return 0;
}
আউটপুট
উপরের কোড রান করলে নিচের আউটপুট জেনারেট হবে −
Yes, the array is Palindrome