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

C++-এ দুটি স্ট্রিংয়ের آنকমন ক্যারেক্টার (Uncommon Characters) বের করা

এই টিউটোরিয়ালে, আমরা শিখব কিভাবে দুটি স্ট্রিং থেকে আলাদা ক্যারেক্টার বের করতে হয়। একটি উদাহরণ দেখি।

ইনপুট

string_one = "tutorialspoint"
string_two = "tutorialsworld"

আউটপুট

d n p w

আমরা হ্যাশিং ব্যবহার করব সমস্যাটি সমাধান করতে। এটা দুই নেস্টেড লুপ লিখতে চেয়ে বেশি এফিশিয়েন্ট।

প্রোগ্রাম সমাধানের ধাপগুলো:

  • দুটি স্ট্রিং কিছু র‍্যান্ডম ভ্যালু দিয়ে ইনিশিয়ালাইজ করুন।
  • map<char, int> chars হিসেবে একটি ম্যাপ ইনিশিয়ালাইজ করুন।
  • প্রথম স্ট্রিংয়ের ওপর ইটারেট করুন এবং প্রতিটি ক্যারেক্টার ম‍্যাপে ১ ভ্যালু দিয়ে ইনসার্ট করুন।
  • এখন, দ্বিতীয় স্ট্রিংয়ের ওপর ইটারেট করুন।
    • চেক করুন ক্যারেক্টারটি ইতিমধ্যে আছে কিনা।
    • যদি থাকে, ০ অ্যাসাইন করুন।
    • যদি না থাকে, ১ ভ্যালু দিয়ে ইনসার্ট করুন।
  • ম‍্যাপে ইটারেট করুন এবং ১ ভ্যালু দিয়ে ক্যারেক্টারগুলো প্রিন্ট করুন।

উদাহরণ

নিচে কোডটি দেখুন।

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

void findDistinctCharacters(string one, string two) {
    // initializing char presence in string
    map<char, int> chars;
    // iterating over the first string
    for (int i = 0; i < one.size(); ++i) {
        // inserting every character into map
        chars.insert({one[i], 1});
    }
    // iterating over the second string
    for (int i = 0; i < two.size(); ++i) {
        // checking whether the current char in string or not
        if (chars.count(two[i])) {
            // assigning 0 for common chars
            chars.find(two[i])->second = 0;
        } else {
            // insering new chars
            chars.insert({two[i], 1});
        }
    }
    // printing the distinct characters
    for (auto item : chars) {
        // checking the presence
        if (item.second == 1) {
            // printing the distinct char
            cout << item.first << " ";
        }
    }
}

int main() {
    string one = "tutorialspoint";
    string two = "tutorialsworld";
    findDistinctCharacters(one, two);
    return 0;
}

আউটপুট

d n p w

উপসংহার

টিউটোরিয়ালে যদি কোনো প্রশ্ন থাকে, তবে কমেন্ট সেকশনে জানান।

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

  2. সি++-এ একটি রেখার মিড-পয়েন্ট বের করার প্রোগ্রাম

  3. সি++-এ ত্রিভুজের কেন্ড্রয়েড (Centroid) বের করার প্রোগ্রাম

  4. সি++-এ সমান্তরাল চতুর্ভুজের (Parallelogram) ক্ষেত্রফল বের করার প্রোগ্রাম