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

C++ में तीनों कैरेक्टर्स वाले सबस्ट्रिंग्स की संख्या


मान लीजिए हमें a, b और c कैरेक्टर्स से बनी एक स्ट्रिंग s दी गई है। हमें उन सबस्ट्रिंग्स की संख्या लौटानी है जिनमें इन तीनों कैरेक्टर्स a, b और c का कम से कम एक ऑकरेंस हो। उदाहरण के लिए, अगर स्ट्रिंग "abcabc" है, तो आउटपुट 10 होगा, क्योंकि a, b और c के कम से कम एक ऑकरेंस वाले सबस्ट्रिंग्स हैं: "abc", "abca", "abcab", "abcabc", "bca", "bcab", "cab", "cabc" और "abc" (अंतिम भाग के लिए फिर से)।

इसे हल करने के लिए, हम इन स्टेप्स को फॉलो करेंगे:

  • ret := 0, m नाम का एक मैप बनाएं, j := 0 सेट करें

  • i को 0 से s के साइज तक लूप करें:

    • मैप m में s[i] की काउंट बढ़ाएं

    • जब तक m['a'] > 0 और m['b'] > 0 और m['c'] > 0:

      • मैप m में s[j] की काउंट घटाएं

      • j को 1 से बढ़ाएं

    • ret को j से बढ़ाएं

  • ret लौटाएं

उदाहरण (C++)

बेहतर समझ के लिए निम्न इम्प्लीमेंटेशन देखें:

#include <bits/stdc++.h>
using namespace std;

class Solution {
public:
    int numberOfSubstrings(string s) {
        int ret = 0;
        map <char, int> m;
        int j = 0;
        for(int i = 0; i < s.size(); i++){
            m[s[i]]++;
            while(m['a'] > 0 && m['b'] > 0 && m['c'] > 0){
                m[s[j]]--;
                j++;
            }
            ret += j;
        }
        return ret;
    }
};

int main(){
    Solution ob;
    cout << (ob.numberOfSubstrings("abcabc"));
}

इनपुट

"abcabc"

आउटपुट

10

  1. - C++ में 8 से विभाज्य और 3 से नहीं विभाज्य सबस्ट्रिंग्स की संख्या

    0-9 की एक स्ट्रिंग दी गई है। इस समस्या के लिए, हमें उन स्ट्रिंग्स की संख्या की गणना करने की आवश्यकता है जो 8 से विभाज्य हैं और 3 से नहीं। यह एक 2-चरण की समस्या है, और हमें इसे हल करने के लिए एक बार में एक चरण का कोड करना होगा, उदाहरण के लिए इनपुट str = 80 आउटपुट 2 इनपुट str = 7675636788 आउटपुट 15 स

  1. - C++ में पूर्णांकों की स्ट्रिंग में 6 से विभाज्य सबस्ट्रिंग्स की संख्या

    हम एक ऐसी समस्या को देखेंगे जिसमें हमें एक पूर्णांक स्ट्रिंग दी गई है और यह निर्धारित करना है कि पूर्णांक प्रारूप में कितने सबस्ट्रिंग्स 6 से विभाज्य हैं। यह ध्यान दिया जाना चाहिए कि इनपुट संख्याओं (पूर्णांकों) से बनी स्ट्रिंग के रूप में है। फिर भी, विभाज्यता जांच केवल पूर्णांक के रूप में की जाएगी

  1. C++ में स्ट्रिंग के सबस्ट्रिंग्स की संख्या निकालना C++ में स्ट्रिंग के सबस्ट्रिंग्स की संख्या निकालना

    इस लेख में, आप एक दी गई स्ट्रिंग में बनने वाले सबस्ट्रिंग्स (गैर-खाली) की संख्या निकालने के दृष्टिकोण के बारे में जानेंगे।इनपुट: string = moon आउटपुट: 10 व्याख्या: सबस्ट्रिंग्स हैं m, o, o, n, mo, oo, on, moo, oon और moon। इनपुट: string = yellow आउटपुट: 21समाधान खोजने का दृष्टिकोणमान लें स्ट्रिंग की