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

C++-এ স্ট্রিং-এ প্রাইম ফ্রিকোয়েন্সি वाले ক্যারেক্টারের XOR

এই সমস্যায়, আমাদের একটি ক্যারেক্টার স্ট্রিং দেওয়া আছে, আমাদের কাজ হল স্ট্রিং-এ যে ক্যারেক্টের ফ্রিকোয়েন্সি প্রাইম নাম্বার, সেগুলোর ফ্রিকোয়েন্সির XOR প্রিন্ট করা।

একটি উদাহরণ দিয়ে সমস্যাটি বুঝতে পারি,

ইনপুট — TutorialsPoint

আউটপুট —

এখানে, আমরা স্ট্রিং-এ প্রতিটি ক্যারেক্টারের ফ্রিকোয়েন্সি চেক করব এবং যেসব ক্যারেক্টের ফ্রিকোয়েন্সি প্রাইম নাম্বার, সেগুলোর XOR বের করব। এর জন্য আমরা প্রাইম ফ্রিকোয়েন্সির একটি অ্যারে তৈরি করব। তারপর স্ট্রিং-এ ক্যারেক্টের ফ্রিকোয়েন্সি একটি ম‍্যাপে স্টোর করব এবং প্রাইম ফ্রিকোয়েন্সি অ্যারেতে মিল করব। মিল পেলে XOR বের করব, ম‍্যাপের সব এলিমেন্টে লুপ করলে প্রয়োজনীয় XOR পাওয়া যাবে।

উদাহরণ

আমাদের সমাধানের ইমপ্লিমেন্টেশন দেখানোর প্রোগ্রাম,

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

void findPrimes(bool prime[], int p_size) {
    prime[0] = false;
    prime[1] = false;
    for (int p = 2; p * p <= p_size; p++) {
        if (prime[p]) {
            for (int i = p * 2; i <= p_size; i += p)
                prime[i] = false;
        }
    }
}

int findPrimeXOR(string s) {
    bool prime[100005];
    memset(prime, true, sizeof(prime));
    findPrimes(prime, 10005);

    int i, j;
    map<char, int> charFreq;

    for (i = 0; i < s.length(); i++)
        charFreq[s[i]]++;

    int result = 0;
    int flag = 0;

    for (auto i = charFreq.begin(); i != charFreq.end(); i++) {
        if (prime[i->second]) {
            result = result ^ i->second;
            flag = 1;
        }
    }

    if (!flag)
        return -1;

    return result;
}

int main() {
    string s = "tutorialspoint";
    cout << "The XOR of frequencies of character which have prime frequencies is: ";
    cout << findPrimeXOR(s);
    return 0;
}

আউটপুট

The XOR of frequencies of character which have prime frequencies is: 3
  1. C++-এ বিজোড় ফ্রিকোয়েন্সিয়ের ক্যারেক্টরগুলো অভ apparition অর্ডারে প্রিন্ট করুন

  2. C++-এ getline (string) ফাংশন

  3. C++-এ স্ট্রিং-এর সব ক্যারেক্টার টগল করা

  4. C++ তে প্রাইম ফ্রিকোয়েন্সি والے অ্যারে উপাদান খুঁজে বের করা