কম্পিউটার

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


ধরুন আমাদের সমান দৈর্ঘ্যের দুটি স্ট্রিং আছে, আমাদের দুটি স্ট্রিং অ্যানাগ্রাম করার জন্য প্রয়োজনীয় ন্যূনতম সংখ্যক পরিবর্তন খুঁজে বের করতে হবে, কোনো অক্ষর মুছে না দিয়ে। অ্যানাগ্রাম হল দুটি স্ট্রিং যার অক্ষরের একই সেট রয়েছে। ধরুন দুটি স্ট্রিং হল “HELLO”, এবং “WORLD” এখানে প্রয়োজনীয় পরিবর্তনের সংখ্যা 3, কারণ এই ক্ষেত্রে তিনটি অক্ষর আলাদা।

ধারণাটি সহজ, আমাদের প্রথম স্ট্রিংটিতে প্রতিটি অক্ষরের ফ্রিকোয়েন্সি খুঁজে বের করতে হবে, তারপরে দ্বিতীয় স্ট্রিংটি দিয়ে যেতে হবে, যদি দ্বিতীয় স্ট্রিংয়ের অক্ষরগুলি উপস্থিত থাকে, ফ্রিকোয়েন্সি অ্যারেতে, তবে ফ্রিকোয়েন্সি মান হ্রাস করতে হবে। যদি ফ্রিকোয়েন্সি মান 0-এর কম হয়, তাহলে চূড়ান্ত গণনা 1 দ্বারা বৃদ্ধি করুন।

উদাহরণ

#include <iostream>
using namespace std;
int countAlteration(string str1, string str2) {
   int count = 0;
   int frequency[26];
   for (int i = 0; i < 26; i++){
      frequency[i] = 0;
   }
   for (int i = 0; i < str1.length(); i++)
   frequency[str1[i] - 'A']++;
   for (int i = 0; i < str2.length(); i++){
      frequency[str2[i] - 'A']--;
      if (frequency[str2[i] - 'A'] < 0)
      count++;
   }
   return count;
}
int main() {
   string s1 = "HELLO", s2 = "WORLD";
   cout << "Number of required alteration: " << countAlteration(s1, s2);
}

আউটপুট

Number of required alteration: 3

  1. C++ এ দুটি সাংখ্যিক স্ট্রিং অভিন্ন করতে ন্যূনতম খরচ

  2. C++ এ ন্যূনতম সংখ্যক পৃষ্ঠা বরাদ্দ করুন

  3. পাইথনে দুটি স্ট্রিং সমান করতে প্রয়োজনীয় ন্যূনতম সংখ্যক প্রিপ্রসেস চালনা খুঁজুন

  4. Python 3.x-এ Counter() ব্যবহার করা। দুটি স্ট্রিং অ্যানাগ্রাম করতে সর্বনিম্ন অক্ষর অপসারণ খুঁজে বের করতে