কম্পিউটার টিউটোরিয়াল

C++-এ দুই স্ট্রিং анаগ্রাম কিনা যাচাই করা

দুটি স্ট্রিং 'a' এবং 'b' দেওয়া থাকলে, সেগুলো অ্যানাগ্রাম (anagram) কিনা যাচাই করতে হবে। দুটি স্ট্রিং অ্যানাগ্রাম হলে তাদের সব ক্যারেক্টার ও ফ্রিকোয়েন্সি সমান হবে।

ইনপুট-১

a = "anagram", b = "gnarama"

আউটপুট

True

ইনপুট-২

a = "programmer", b = "mprogretmrqp"

আউটপুট

False

সমাধানের পদ্ধতি

  • দুটি স্ট্রিং ইনপুট নিন।
  • লেন্থ ভিন্ন হলে সরাসরি false রিটার্ন করুন।
  • unordered_map<char,int> দিয়ে প্রথম স্ট্রিংয়ের ক্যারেক্টার ফ্রিকোয়েন্সি বাড়ান এবং দ্বিতীয় স্ট্রিংয়ের কমান।
  • ম্যাপে যেকোনো নন-জিরো ভ্যালু থাকলে false, অন্যথায় true।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;

bool checkAnagram(string a, string b) {
    if (a.length() != b.length()) return false;
    unordered_map<char,int> mp;
    for (int i = 0; i < a.size(); i++) {
        mp[a[i]]++;
        mp[b[i]]--;
    }
    for (auto it : mp)
        if (it.second) return false;
    return true;
}

int main() {
    string a = "anagram", b = "gnarama";
    cout << checkAnagram(a,b) << endl; // 1 (True)
    return 0;
}

আউটপুট

1
  1. সি++-এ দুটি বাইনারি স্ট্রিং যোগ করার প্রোগ্রাম

  2. Python-এ দুটি স্ট্রিং একে অপরের অ্যানাগ্রাম কিনা যাচাই করা

  3. পাইথনে দুটি স্ট্রিং একে অপরের রোটেশন (Rotation) কিনা

  4. পাইথনে দুটি স্ট্রিং ইন্টারলিভ করে তৃতীয় স্ট্রিং তৈরি করা যায় কিনা চেক করা