কম্পিউটার টিউটোরিয়াল

C প্রোগ্রাম: রিকার্শন ব্যবহার করে অ্যারে প্যালিনড্রোম কিনা চেক করা

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

সুতরাং একটি অ্যারে প্যালিনড্রোম কিনা চেক করতে আমরা অ্যারেটি পিছন থেকে এবং সামনে থেকে ট্রাভার্স করতে পারি −

C প্রোগ্রাম: রিকার্শন ব্যবহার করে অ্যারে প্যালিনড্রোম কিনা চেক করা

রিকার্শনে ও আমাদের 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

  1. C প্রোগ্রাম: অ্যারে প্যালিনড্রোম কিনা চেক করা

  2. সি++ STL ব্যবহার করে অ্যারে প্যালিনড্রোম কিনা তা যাচাই করার প্রোগ্রাম

  3. পাইথনে স্ট্রিং প্যালিনড্রোম কিনা যাচাই করার প্রোগ্রাম

  4. পাইথনে প্যালিনড্রোম স্ট্রিং চেক করা