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

C++-এ রিকারসিভ ফাংশন দিয়ে স্ট্রিং প্যালিনড্রোম চেক করুন


একটি স্ট্রিং দেওয়া থাকলে, রিকারসিভ ফাংশন দিয়ে সেটি প্যালিনড্রোম কিনা চেক করতে হবে। প্যালিনড্রোম স্ট্রিং সামনে ও পেছন থেকে পড়লে একই হয়। দৈর্ঘ্য ০-ও প্যালিনড্রোম।

উদাহরণ

ইনপুট − 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.
  1. C++-এ একটি স্ট্রিং সাব-স্ট্রিং কন্টেইন করে কিনা চেক করা

  2. C/C++-এ স্ট্রিং ইন্টিজার কিনা চেক করা

  3. C++-এ পিউর ফাংশন

  4. C++-এ strchr() ফাংশন