इस ट्यूटोरियल में, हम सीखेंगे कि दिए गए दो स्ट्रिंग्स से अलग-अलग कैरेक्टर कैसे खोजें। आइए एक उदाहरण देखें।
इनपुट
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
निष्कर्ष
यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उनका टिप्पणी अनुभाग में उल्लेख करें।