কম্পিউটার

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


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

'n' আকারের একটি স্ট্রিং দেওয়া হয়েছে। কাজটি হল স্ট্রিং প্যালিনড্রোম তৈরি করতে ন্যূনতম সংখ্যক অক্ষর মুছে ফেলা।

যদি প্রদত্ত স্ট্রিংটি "abcda" হয় তবে আমরা এটিকে একটি প্যালিনড্রোম করতে প্রথম এবং শেষ ব্যতীত যেকোনো 2টি অক্ষর মুছে ফেলতে পারি।

  • যদি আমরা 'b' এবং 'c' অক্ষর মুছে ফেলি তাহলে "ada" স্ট্রিং হল একটি প্যালিনড্রোম

  • যদি আমরা 'c' এবং 'd' অক্ষর মুছে ফেলি তাহলে "aba" স্ট্রিং হল একটি প্যালিনড্রোম

  • যদি আমরা 'b' এবং 'd' অক্ষর মুছে ফেলি তাহলে "aca" স্ট্রিং হল একটি প্যালিনড্রোম

অ্যালগরিদম

<পূর্ব>1. প্রদত্ত স্ট্রিং এর দীর্ঘতম প্যালিনড্রোমিক অনুক্রম খুঁজুন। আসুন এটিকে "lpsSize" হিসাবে বলি।2। মুছে ফেলার জন্য সর্বনিম্ন অক্ষর =(স্ট্রিংয়ের দৈর্ঘ্য – lpsSize) কোড।

উদাহরণ

#include #include  namespace ব্যবহার করে std;int lps(স্ট্রিং s, int i, int j){ if (i ==j) { রিটার্ন 1; } যদি (s[i] ==s[j] &&i + 1 ==j) { রিটার্ন 2; } যদি (s[i] ==s[j]) { ফেরত lps(s, i + 1, j - 1) + 2; } রিটার্ন max(lps(s, i, j - 1), lps(s, i + 1, j));}int minDeletion(string s){ int n =s.size(); int lpsSize =lps(s, 0, n); রিটার্ন (n - lpsSize);}int main(){ cout <<"মুছে ফেলার সর্বনিম্ন অক্ষর =" < 

আউটপুট

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

তৈরি করে
মোছার সর্বনিম্ন অক্ষর =2

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

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

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

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