परिचय
इस ट्यूटोरियल में हम दी गई स्ट्रिंग में पहले नॉन-रिपीटिंग (non-repeating) कैरेक्टर को ढूंढना सीखेंगे। आइए एक उदाहरण देखते हैं।
इनपुट - tutorialspoint
आउटपुट - u
समस्या समाधान के चरण
- स्ट्रिंग को इनिशियलाइज़ करें।
- स्ट्रिंग में कैरेक्टर्स की फ्रीक्वेंसी स्टोर करने के लिए एक मैप (char और array) इनिशियलाइज़ करें।
- स्ट्रिंग पर पुनरावृत्ति करें।
- प्रत्येक कैरेक्टर की फ्रीक्वेंसी ढूंढें और उन्हें मैप में स्टोर करें।
- कैरेक्टर का इंडेक्स भी स्टोर करें।
- मैप में कैरेक्टर फ्रीक्वेंसीज पर पुनरावृत्ति करें।
- फ्रीक्वेंसी 1 वाले पहले कैरेक्टर को प्रिंट करें।
उदाहरण कोड
#include <bits/stdc++.h>
#include <map>
using namespace std;
void findDistinctCharacters(string random_string) {
// कैरेक्टर काउंट इनिशियलाइज़ करना
map<char, int[2]> chars;
// स्ट्रिंग पर पुनरावृत्ति
for (int i = 0; i < random_string.size(); ++i){
chars[random_string[i]][0]++;
chars[random_string[i]][1] = i;
}
int char_index = INT_MAX;
// फ्रीक्वेंसी 1 वाले पहले कैरेक्टर को प्रिंट करना
for (auto item: chars) {
// फ्रीक्वेंसी जांचना
if (item.second[0] == 1) {
char_index = min(char_index, item.second[1]);
}
}
// फ्रीक्वेंसी 1 वाले पहले कैरेक्टर को प्रिंट करना
cout << random_string[char_index] << endl;
}
int main() {
findDistinctCharacters("tutorialspoint");
return 0;
}
आउटपुट
u
निष्कर्ष
इस दृष्टिकोण में हम एक ही पास में फ्रीक्वेंसी और इंडेक्स दोनों स्टोर करते हैं, फिर न्यूनतम इंडेक्स वाले कैरेक्टर को ढूंढते हैं जिसकी फ्रीक्वेंसी 1 हो। समय जटिलता O(n) है जहां n स्ट्रिंग की लंबाई है। यदि आपके कोई प्रश्न हैं, तो कमेंट सेक्शन में पूछें।