इस समस्या में, हमें अल्पविराम से अलग किए गए शब्दों से युक्त एक स्ट्रिंग str दी गई है। हमारा कार्य स्ट्रिंग से पहली अधिकतम लंबाई, सम शब्द, ढूंढना है।
हमें सबसे बड़ा शब्द 'दो स्पेस के बीच की स्ट्रिंग' ढूंढना है जिसकी लंबाई अधिकतम और सम हो।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट : str = "learn programming at TutorialsPoint" आउटपुट : TutorialsPoint
व्याख्या −
सम लंबाई वाली स्ट्रिंग TutorialsPoint है।
समाधान दृष्टिकोण
समस्या का एक सरल समाधान केवल उस स्ट्रिंग को ढूंढना है जिसकी लंबाई सम है और वर्तमान स्ट्रिंग से अधिक है। maxString लंबाई को 0 से आरंभ करें।
एल्गोरिदम
चरण 1 − स्ट्रिंग पर पुनरावृति करें।
चरण 2 − जांचें कि क्या वर्तमान शब्द की लंबाई सम है और शब्द की लंबाई पिछले बड़े शब्द से अधिक है।
चरण 3 − शब्द लौटाएं।
उदाहरण
हमारे समाधान के कार्य को दर्शाने वाला प्रोग्राम
#include <bits/stdc++.h> using namespace std; string findMaxEvenLenWord(string str) { int len = str.length(); int i = 0; int currWordlen = 0; int maxWordLen = 0; int stringPointer = -1; while (i < len) { if (str[i] == ' ') { if (currWordlen % 2 == 0) { if (maxWordLen < currWordlen) { maxWordLen = currWordlen; stringPointer = i - currWordlen; } } currWordlen = 0; } else { currWordlen++; } i++; } if (currWordlen % 2 == 0) { if (maxWordLen < currWordlen) { maxWordLen = currWordlen; stringPointer = i - currWordlen; } } if (stringPointer == -1) return "नहीं मिला!"; return str.substr(stringPointer, maxWordLen); } int main() { string str = "Learn programming at Tutorialspoint"; cout<<"अधिकतम लंबाई वाला सम शब्द है '"<<findMaxEvenLenWord(str)<<"'"; return 0; } आउटपुट
अधिकतम लंबाई वाला सम शब्द है 'Tutorialspoint'