इस ट्यूटोरियल में, हम एक प्रोग्राम लिखेंगे जो उन सबस्ट्रिंग्स की कुल संख्या खोजता है जो दी गई स्ट्रिंग्स से शुरू और खत्म होती हैं।
हमें एक स्ट्रिंग और दो सबस्ट्रिंग्स दी गई हैं। हमें उन विभिन्न सबस्ट्रिंग्स की संख्या खोजनी है जो दी गई दो सबस्ट्रिंग्स से शुरू और खत्म होती हैं। एक उदाहरण देखते हैं।
इनपुट
str = "getmesomecoffee" start = "m" end = "e"
आउटपुट
6
दिए गए स्ट्रिंग में कुल 6 विभिन्न सबस्ट्रिंग्स हैं। वे हैं me, mesome, mesomemecoffe, mesomemecoffee, mecoffe, mecoffee.
समस्या को हल करने के चरण देखते हैं।
स्ट्रिंग्स को इनिशियलाइज़ करें।
str पर पुनरावृति करें और प्रारंभ और अंत सबस्ट्रिंग्स के इंडेक्स खोजें। उन्हें अलग-अलग ऐरे में स्टोर करें।
विभिन्न सबस्ट्रिंग्स स्टोर करने के लिए एक सेट इनिशियलाइज़ करें।
str पर पुनरावृति करें।
जांचें कि वर्तमान इंडेक्स पहले बने ऐरे के प्रारंभ स्ट्रिंग से मेल खाता है या नहीं।
यदि हमें प्रारंभ स्ट्रिंग का इंडेक्स मिला, तो अंत स्ट्रिंग खोजें।
अंत मिलने तक सभी स्ट्रिंग्स को एक वेरिएबल में जोड़ें।
जब हमें अंत स्ट्रिंग मिले, तो सबस्ट्रिंग काउंट बढ़ाएं और सबस्ट्रिंग को सेट में जोड़ें।
सबस्ट्रिंग वेरिएबल को रीसेट करें।
सबस्ट्रिंग्स काउंट प्रिंट करें।
उदाहरण
कोड देखते हैं।
#include <bits/stdc++.h> using namespace std; int getSubstringsCount(string str, string start, string end) { int substrings_count = 0, str_length = str.size(), start_length = start.size(), end_length = end.size(); int start_matches_index[str_length] = {0}, end_matches_index[str_length] = {0}; for (int i = 0; i < str_length; i++) { if (str.substr(i, start_length) == start) { start_matches_index[i] = 1; } if (str.substr(i, end_length) == end) { end_matches_index[i] = 1; } } set<string> substrings; string current_substring = ""; for (int i = 0; i < str_length; i++) { if (start_matches_index[i]) { for (int j = i; j < str_length; j++) { if (!end_matches_index[j]) { current_substring += str[j]; } if (end_matches_index[j]) { current_substring += str.substr(j, end_length); if (substrings.find(current_substring) == substrings.end()) { substrings_count++; } substrings.insert(current_substring); } } current_substring = ""; } } return substrings_count; } int main() { string str = "getmesomecoffee"; string start = "m"; string end = "e"; cout << getSubstringsCount(str, start, end) << endl; return 0; }आउटपुट
यदि आप उपरोक्त प्रोग्राम निष्पादित करते हैं, तो आपको निम्न परिणाम मिलेगा।
6
निष्कर्ष
यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उन्हें कमेंट सेक्शन में बताएं।