इस समस्या में, हमें अल्पविराम से अलग किए गए शब्दों से युक्त एक स्ट्रिंग str दी गई है। हमारा कार्य स्ट्रिंग में पहला दोहराया गया शब्द ज्ञात करना है।
हमें पहला शब्द ढूंढना है 'दो स्पेस के बीच की स्ट्रिंग' जो स्ट्रिंग में दोहराया जाता है।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट : str = "C program are easy to program" आउटपुट : program
समाधान दृष्टिकोण
समस्या का एक सरल समाधान हैशमैप डेटा संरचना का उपयोग करना है। पहला दोहराया गया शब्द ढूंढने के लिए, हम प्रत्येक शब्द और उसकी गिनती (स्ट्रिंग में जितनी बार आया) को हैशमैप में संग्रहीत करेंगे। इसके लिए हम जांचते रहेंगे कि वर्तमान शब्द मौजूद है या नहीं।
फिर हम हैशमैप में एक से अधिक घटना गिनती वाले पहले शब्द को प्रिंट करेंगे।
उदाहरण
हमारे समाधान के कार्य को दर्शाने वाला प्रोग्राम
#include <bits/stdc++.h> using namespace std; string findFirstRepeatWord(string str){ istringstream iss(str); string word; unordered_map<string, int> wordCountMap; while (getline(iss, word, ' ')) { if (wordCountMap.find(word) != wordCountMap.end()) wordCountMap[word] ++; else wordCountMap.insert(make_pair(word, 1)); } istringstream iss2(str); while (getline(iss2, word, ' ')) { int count = wordCountMap[word]; if (count > 1) { return word; } } return "NoRepetition"; } int main(){ string str = "C program are easy to program"; string repeatedWord = findFirstRepeatWord(str); if (repeatedWord != "NoRepetition") cout<<"पहला दोहराया गया शब्द है '"<<repeatedWord<<"'"; else cout<<"स्ट्रिंग में कोई शब्द दोहराया नहीं गया"; return 0; } आउटपुट
पहला दोहराया गया शब्द है 'program'
यह प्रोग्राम कार्य को आसान बनाने के लिए बहुत सारे इन-बिल्ट फ़ंक्शन का उपयोग करता है।