Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ प्रोग्राम में दी गई स्ट्रिंग से शुरू और खत्म होने वाले विभिन्न सबस्ट्रिंग्स


इस ट्यूटोरियल में, हम एक प्रोग्राम लिखेंगे जो उन सबस्ट्रिंग्स की कुल संख्या खोजता है जो दी गई स्ट्रिंग्स से शुरू और खत्म होती हैं।

हमें एक स्ट्रिंग और दो सबस्ट्रिंग्स दी गई हैं। हमें उन विभिन्न सबस्ट्रिंग्स की संख्या खोजनी है जो दी गई दो सबस्ट्रिंग्स से शुरू और खत्म होती हैं। एक उदाहरण देखते हैं।

इनपुट

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

निष्कर्ष

यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उन्हें कमेंट सेक्शन में बताएं।


  1. C++ का उपयोग करके एक छोर और मध्य बिंदु दिए जाने पर रेखा का दूसरा छोर खोजना C++ का उपयोग करके एक छोर और मध्य बिंदु दिए जाने पर रेखा का दूसरा छोर खोजना

    समस्या विवरण इस समस्या में, हमें एक रेखा के दो बिंदुओं के निर्देशांक दिए गए हैं: प्रारंभिक बिंदु A(xₐ, yₐ) और मध्य बिंदु M(xₘ, yₘ)। हमारा कार्य दिए गए एक छोर और मध्य बिंदु के साथ रेखा का दूसरा छोर खोजना है। उदाहरण इनपुट A = [1, 2], M = [3, 0] आउटपुट [5, -2] हल का दृष्टिकोण समस्या को हल करने के लिए

  1. C++ में दो बाइनरी स्ट्रिंग्स को जोड़ें C++ में दो बाइनरी स्ट्रिंग्स को जोड़ें

    दो बाइनरी संख्या वाली स्ट्रिंग्स दी गई हैं, हमें उन दो बाइनरी स्ट्रिंग्स को जोड़कर प्राप्त परिणाम ढूंढना है और परिणाम को बाइनरी स्ट्रिंग के रूप में लौटाना है। बाइनरी संख्याएं वे संख्याएं हैं जिन्हें या तो 0 या 1 के रूप में व्यक्त किया जाता है। 2 बाइनरी संख्याओं को जोड़ते समय बाइनरी जोड़ का नियम हो

  1. - C++ में दो स्ट्रिंग्स को जोड़ने (Concatenate) का प्रोग्राम

    एक स्ट्रिंग एक एक-आयामी कैरेक्टर सरणी है जो नल कैरेक्टर द्वारा समाप्त होती है। दो स्ट्रिंग्स का संयोजन (Concatenation) उन्हें जोड़कर एक नई स्ट्रिंग बनाना है। उदाहरण के लिए। स्ट्रिंग 1: Mangoes are स्ट्रिंग 2: tasty 2 स्ट्रिंग्स का संयोजन: Mangoes are tasty दो स्ट्रिंग्स को जोड़ने का एक प्रोग्राम निम