কম্পিউটার

C++ এ একটি স্ট্রিং প্যালিনড্রোম কিনা তা পরীক্ষা করার জন্য রিকার্সিভ ফাংশন


ইনপুট হিসাবে আমাদের একটি স্ট্রিং স্ট্রিং দেওয়া হয়েছে। লক্ষ্য হল ইনপুট স্ট্রিংটি একটি প্যালিনড্রোম শব্দ কিনা বা একটি পুনরাবৃত্ত ফাংশন ব্যবহার করে না তা খুঁজে বের করা৷ প্যালিনড্রোম স্ট্রিংগুলি হল সেই স্ট্রিংগুলি যা সামনে বা শেষ থেকে পড়লে একই শব্দ তৈরি হয়৷ দৈর্ঘ্য 0 এর স্ট্রিংগুলিকে প্যালিনড্রোম হিসাবে বিবেচনা করা হয়। প্যালিনড্রোম অক্ষর অনুসারে ফর্মগুলিকে উল্টানো, মূলের মতো একই স্ট্রিং।

প্যালিন্ড্রোমের উদাহরণ হল:- madam, abcba, Malayalam ইত্যাদি

উদাহরণ

ইনপুট − Str =“মালায়ালাম”

আউটপুট − ইনপুট স্ট্রিং হল প্যালিনড্রোম৷

ব্যাখ্যা

Str[ 0 থেকে 8] =মালায়ালাম

বিপরীত Str [ 8 থেকে 0 ] =মালায়ালাম

উভয় স্ট্রিং একই।

ইনপুট − Str ="টিউটোরিয়াল"

আউটপুট − ইনপুট স্ট্রিং একটি প্যালিনড্রোম নয়৷

ব্যাখ্যা

Str[ 0 থেকে 7] =টিউটোরিয়াল

বিপরীত Str [ 7 থেকে 0 ] =lairotut

উভয় স্ট্রিং ভিন্ন

নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ

এই পদ্ধতিতে আমরা পরীক্ষা করব যে স্ট্রিংটিতে একটি একক অক্ষর আছে কিনা, যদি সত্য হয় তবে এটি প্যালিনড্রোম। যদি তা না হয়, তাহলে বাকি অক্ষরগুলির জন্য পুনরাবৃত্তভাবে পুরো স্ট্রিংটি অতিক্রম করুন এবং সংশ্লিষ্ট অক্ষরগুলি ভিন্ন হলে পুনরাবৃত্তিটি ভেঙে দিন৷

  • ইনপুট স্ট্রিং Str[] নিন এবং এর দৈর্ঘ্য গণনা করুন।

  • যদি দৈর্ঘ্য 0 হয় তাহলে ফলাফল=1 সেট করুন।

  • অন্যথায় ফলাফল সেট করুন=চেকপ্যালিনড্রোম(Str, 0, দৈর্ঘ্য - 1) যেখানে 0 হল প্রথম সূচক এবং দৈর্ঘ্য - 1 হল শেষ সূচক

  • ফাংশন চেকপ্যালিনড্রোম(char str[], int first, int last) 0 প্রদান করে যদি কোনো অক্ষর স্ট্রিং-এ তার সংশ্লিষ্ট অক্ষরের সাথে মেলে না।

  • যদি প্রথম এবং শেষ সূচী একই হয় তবে স্ট্রিং একটি অক্ষর আছে, তারপর 1 ফেরত দিন।

  • যদি না হয় তাহলে প্রথম++, লাস্ট-- এবং রিকার্সিভ কল চেকপ্যালিনড্রোম(str, first, last) দ্বারা শেষ অক্ষর ব্যতীত বাকি অক্ষরগুলি পরীক্ষা করুন।

  • সমস্ত পুনরাবৃত্তির শেষে আমরা একটি ফলাফল পাব।

  • যদি এটি 1 হয় তবে ইনপুট স্ট্রিংটি প্যালিনড্রোম।

  • অন্যথায় ইনপুট স্ট্রিং একটি প্যালিনড্রোম নয়৷

  • প্রধান ফলাফল প্রিন্ট করুন.

উদাহরণ

#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;
}
// Driver Code
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++ স্ট্রিং একটি int কিনা তা কীভাবে পরীক্ষা করবেন?

  3. C++ এ বিশুদ্ধ ফাংশন

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