এই টিউটোরিয়ালে, আমরা শিখব কিভাবে দুটি স্ট্রিং থেকে আলাদা ক্যারেক্টার বের করতে হয়। একটি উদাহরণ দেখি।
ইনপুট
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
উপসংহার
টিউটোরিয়ালে যদি কোনো প্রশ্ন থাকে, তবে কমেন্ট সেকশনে জানান।