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

सी ++ में बाइनरी सबस्ट्रिंग्स की गणना करें

मान लीजिए कि हमारे पास एक स्ट्रिंग s है, हमें सन्निहित सबस्ट्रिंग्स की संख्या ज्ञात करनी है जिनमें 0 और 1 की संख्या समान है, और इन सबस्ट्रिंग्स में सभी 0 और सभी 1 को क्रमिक रूप से समूहीकृत किया गया है। यदि सबस्ट्रिंग कई बार होते हैं तो उनके आने की संख्या की गणना की जाती है।

इसलिए, यदि इनपुट "11001100" जैसा है, तो आउटपुट 6 होगा, क्योंकि सबस्ट्रिंग "1100", "10", "0011", "01", "1100", "10" हैं।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • आकार 2 की एक सरणी परिभाषित करें और इसे 0 से भरें
  • res :=0
  • इनिशियलाइज़ i :=0 के लिए, जब i करें
  • संख्या:=s[i] - '0' का ASCII
  • यदि मैं 0 के समान है या s[i] s[i - 1] के बराबर नहीं है, तो −
    • cnt[num] :=0
  • (cnt[num] 1 से बढ़ाएं)
  • यदि cnt[num] <=cnt[1 - num], तो −
    • (रेस 1 से बढ़ाएँ)
  • रिटर्न रेस
  • आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

    उदाहरण

    #include <bits/stdc++.h>
    using namespace std;
    class Solution {
    public:
       int countBinarySubstrings(string s) {
          int cnt[2] = { 0 };
          int res = 0;
          for (int i = 0; i < s.length(); ++i) {
             int num = s[i] - '0';
             if (i == 0 || s[i] != s[i - 1])
                cnt[num] = 0;
             ++cnt[num];
             if (cnt[num] <= cnt[1 - num])
                ++res;
          }
          return res;
       }
    };
    main(){
       Solution ob;
       cout << (ob.countBinarySubstrings("11001100"));
    }

    इनपुट

    "11001100"

    आउटपुट

    6

    1. सी ++ में बाइनरी ट्री में अच्छे नोड्स की गणना करें

      मान लीजिए कि हमारे पास एक बाइनरी ट्री है, पेड़ में एक नोड एक्स को अच्छा नाम दिया गया है जब रूट से एक्स तक के रास्ते में कोई नोड नहीं है जिसका मान एक्स से अधिक है। यहां हमें बाइनरी ट्री में अच्छे नोड्स की संख्या का पता लगाना है। तो, अगर इनपुट पसंद है, तब आउटपुट 4 होगा, रंगीन नोड अच्छे नोड हैं।

    1. C++ में ऊंचाई h के संतुलित बाइनरी ट्री की गणना करें

      हमें एक बाइनरी ट्री की ऊंचाई H के साथ दिया गया है। लक्ष्य दी गई ऊंचाई के संतुलित बाइनरी ट्री की संख्या/गिनती ज्ञात करना है। एक बाइनरी ट्री - एक ट्री डेटा संरचना है जिसमें प्रत्येक नोड में अधिकतम दो बच्चे होते हैं, जो कि बायां बच्चा और दायां बच्चा होता है। ऊंचाई-संतुलित बाइनरी ट्री - को एक बाइनरी ट

    1. सी ++ में क्रमबद्ध बाइनरी सरणी में 1 की गणना करें

      इस ट्यूटोरियल में, हम एक क्रमबद्ध बाइनरी एरे में 1 को खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे। इसके लिए हमें केवल 1 और 0 वाली एक सरणी प्रदान की जाएगी। हमारा कार्य सरणी में मौजूद 1 की संख्या को गिनना है। उदाहरण #include <bits/stdc++.h> using namespace std; //returning the count of 1 int coun