इस ट्यूटोरियल में, हम सीखेंगे कि दिए गए दो स्ट्रिंग्स से अलग-अलग कैरेक्टर कैसे खोजें। आइए एक उदाहरण देखें।
इनपुट
string_one = "tutorialspoint" string_two = "tutorialsworld"
आउटपुट
d n p w
हम समस्या को हल करने के लिए हैशिंग का उपयोग करने जा रहे हैं। यह दो नेस्टेड लूप लिखने की तुलना में अधिक कुशल है
आइए कार्यक्रम को हल करने के चरणों को देखें।
-
कुछ यादृच्छिक मानों के साथ दो स्ट्रिंग प्रारंभ करें।
-
मानचित्र को मानचित्र के रूप में प्रारंभ करें
वर्ण। -
पहली स्ट्रिंग पर पुनरावृति करें और प्रत्येक वर्ण को मान 1 के साथ मानचित्र में डालें।
-
अब, दूसरी स्ट्रिंग पर पुनरावृति करें।
-
जांचें कि चरित्र पहले से मौजूद है या नहीं।
-
अगर मौजूद है, तो उसे 0 असाइन करें।
-
यदि मौजूद नहीं है तो 1 मान वाला वर्ण डालें।
-
-
मानचित्र पर पुनरावृति करें और 1 मान वाले वर्ण प्रिंट करें।
उदाहरण
नीचे दिए गए कोड को देखें।
#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
निष्कर्ष
यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उनका टिप्पणी अनुभाग में उल्लेख करें।