কম্পিউটার

C++ এ একটি স্ট্রিং প্যালিনড্রোম তৈরি করতে ন্যূনতম সংখ্যক পরিশিষ্ট প্রয়োজন


সমস্যা বিবৃতি

একটি স্ট্রিং দেওয়া হয়েছে, একটি স্ট্রিং প্যালিনড্রোম তৈরি করতে ন্যূনতম অক্ষরগুলি যুক্ত করতে হবে৷

উদাহরণ

যদি স্ট্রিং abcac হয় তাহলে আমরা 2টি হাইলাইড অক্ষর যেমন abcacba যোগ করে স্ট্রিং প্যালিনড্রোম তৈরি করতে পারি।

অ্যালগরিদম

  • পরীক্ষা করুন যে স্ট্রিংটি ইতিমধ্যেই প্যালিনড্রোম কিনা, যদি হ্যাঁ হয় তবে কোনও অক্ষর যুক্ত করার দরকার নেই৷
  • একের পর এক স্ট্রিং থেকে একটি অক্ষর মুছে ফেলুন এবং বাকি স্ট্রিং প্যালিনড্রোম কিনা তা পরীক্ষা করুন
  • স্ট্রিং প্যালিড্রোম না হওয়া পর্যন্ত উপরের প্রক্রিয়াটি পুনরাবৃত্তি করুন
  • একটি চূড়ান্ত উত্তর হিসাবে এখন পর্যন্ত সরানো অক্ষরের সংখ্যা ফেরত দিন

উদাহরণ

#include <iostream>
#include <cstring>
using namespace std;
bool isPalindrome(char *str) {
   int n = strlen(str);
   if (n == 1) {
      return true;
   }
   int start = 0, end = n - 1;
   while (start < end) {
      if (str[start] != str[end]) {
         return false;
      }
      ++start;
      --end;
   }
   return true;
}
int requiredAppends(char *str) {
   if (isPalindrome(str)) {
      return 0;
   }
   return 1 + requiredAppends(str + 1);
}
int main() {
   char *str = "abcac";
   cout << "Characters to be appended = " << requiredAppends(str) << endl;
   return 0;
}

আউটপুট

আপনি যখন উপরের প্রোগ্রামটি কম্পাইল এবং এক্সিকিউট করবেন। এটি নিম্নলিখিত আউটপুট −

তৈরি করে
Characters to be appended = 2

  1. C++ এ মোট n তৈরি করতে ন্যূনতম সংখ্যক অক্ষর প্রয়োজন।

  2. C++ এ একটি স্ট্রিং প্যালিনড্রোম তৈরি করতে ন্যূনতম সংখ্যক মুছে ফেলা।

  3. একটি সংখ্যা C++ এ প্যালিনড্রোম কিনা তা পরীক্ষা করুন

  4. পাইথনে স্ট্রিং প্যালিনড্রোম তৈরি করতে প্রয়োজনীয় ন্যূনতম সংখ্যক অক্ষর পরীক্ষা করার জন্য প্রোগ্রাম