সমস্যা বিবৃতি
একটি স্ট্রিং S দেওয়া হলে, আমাদের ন্যূনতম অক্ষরগুলি খুঁজে বের করতে হবে যা আমরা স্ট্রিং S কে একটি প্যালিনড্রোম করার জন্য অপসারণ করতে পারি।
উদাহরণ
যদি str =“abcdba” হয় তাহলে আমরা 1টি অক্ষর সরিয়ে ফেলি, যেমন হয় ‘c’ বা ‘d’।
অ্যালগরিদম
<পূর্ব>1. প্যালিনড্রোম দুই ধরনের হতে পারে, জোড় দৈর্ঘ্য এবং বিজোড় দৈর্ঘ্যের প্যালিনড্রোম২। আমরা এই সত্যটি অনুমান করতে পারি যে একটি জোড় দৈর্ঘ্যের প্যালিনড্রোমে প্রতিটি অক্ষর অবশ্যই জোড় সংখ্যক বার ঘটতে হবে3. একটি বিজোড় প্যালিন্ড্রোমে প্রতিটি অক্ষর অবশ্যই জোড় সংখ্যা হতে হবে। প্রতিটি অক্ষরের ফ্রিকোয়েন্সি পরীক্ষা করুন এবং বিজোড় সংখ্যক বার ঘটছে এমন অক্ষরগুলি তারপর গণনা করা হবে। তারপর ফলাফল হল বিজোড় ফ্রিকোয়েন্সি অক্ষরের মোট গণনা বিয়োগ 1উদাহরণ
#include#define MAX 26 useing namespace std;int minCharactersRemoved(string str) { int হ্যাশ[MAX] ={0}; জন্য (int i =0; str[i]; ++i) { হ্যাশ[str[i] - 'a']++; } int cnt =0; জন্য (int i =0; i আপনি যখন উপরের প্রোগ্রামটি কম্পাইল এবং এক্সিকিউট করবেন। এটি নিম্নলিখিত আউটপুট তৈরি করে
আউটপুট
সরানো সর্বনিম্ন অক্ষর =1