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

C++ में जांचें कि क्या स्ट्रिंग आकार K के सभी बाइनरी कोड समाहित करती है


मान लीजिए हमारे पास एक बाइनरी स्ट्रिंग s और एक इंटीजर k है। हमें जांचना है कि क्या लंबाई k का हर बाइनरी कोड s का सबस्ट्रिंग है। अन्यथा, False लौटाएं।

इसलिए, यदि इनपुट है S = "00110110", k = 2, तो आउटपुट true होगा। लंबाई 2 के बाइनरी कोड "00", "01", "10" और "11" हैं। ये इंडेक्स 0, 1, 3, और 2 पर क्रमशः मौजूद हैं।

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

  • एक सेट v परिभाषित करें

  • temp := खाली स्ट्रिंग

  • req := 2^k

  • i := 0 से शुरू करें, जब i < s का आकार, i बढ़ाते हुए, करें -

    • temp := temp + s[i]

    • यदि i >= k, तो -

      • temp के पहले इंडेक्स से एक कैरेक्टर हटाएं

    • यदि i >= k - 1, तो -

      • temp को v में डालें

    • यदि v का आकार, req के समान है, तो -

      • true लौटाएं

  • false लौटाएं

उदाहरण

बेहतर समझ के लिए निम्न कार्यान्वयन देखें:

#include <bits/stdc++.h> using namespace std; typedef long long int lli; class Solution { public:    lli fastPow(lli b, lli p){       lli ret = 1;       while (p) {          if (p & 1) {             ret *= b;          }          b *= b;          p >>= 1;       }       return ret;    }    bool hasAllCodes(string s, int k) {       unordered_set<string> v;       string temp = "";       lli req = fastPow(2, k);       for (lli i = 0; i < s.size(); i++) {          temp += s[i];          if (i >= k) {             temp.erase(0, 1);          }          if (i >= k - 1) {             v.insert(temp);          }          if ((lli)v.size() == req)             return true;       }       return false;    } }; main(){    Solution ob;    cout << (ob.hasAllCodes("00110110",2)); }

इनपुट

"00110110",2

आउटपुट

1

  1. C++ में बाइनरी ट्री की संपूर्णता जांचना C++ में बाइनरी ट्री की संपूर्णता जांचना

    मान लीजिए हमारे पास एक बाइनरी ट्री है। हमें जांचना है कि क्या यह ट्री एक पूर्ण बाइनरी ट्री (Complete Binary Tree) है या नहीं। लेवल n का एक पूर्ण बाइनरी ट्री में n-1 लेवल पूरी तरह भरे होते हैं, और लेवल n पर सभी नोड्स बाईं ओर से भरे होते हैं। उदाहरण: ट्री [1,2,3,4,5,6] के लिए आउटपुट true (1) होगा, क

  1. C++ में बाइनरी ट्री में आकार 2 या अधिक के डुप्लिकेट सबट्री हैं या नहीं जांचें C++ में बाइनरी ट्री में आकार 2 या अधिक के डुप्लिकेट सबट्री हैं या नहीं जांचें

    समस्या विवरण बाइनरी ट्री में आकार 2 या अधिक के डुप्लिकेट सबट्री हैं या नहीं जांचें। हल: ट्री सीरियलाइजेशन + हैशिंग प्रत्येक सबट्री को स्ट्रिंग के रूप में सीरियलाइज़ करें (नल के लिए $ मार्कर) सीरियलाइज्ड स्ट्रिंग्स को हैश सेट में स्टोर करें यदि कोई नॉन-लीफ सबट्री पहले से सेट में है → डुप्लिकेट मिल

  1. पायथन प्रोग्राम: जांचें कि स्ट्रिंग में सभी यूनिक कैरेक्टर्स हैं या नहीं पायथन प्रोग्राम: जांचें कि स्ट्रिंग में सभी यूनिक कैरेक्टर्स हैं या नहीं

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट एक स्ट्रिंग इनपुट दिए जाने पर, हमें यह ढूंढना होगा कि स्ट्रिंग में सभी यूनिक कैरेक्टर्स हैं या नहीं। दृष्टिकोण हम बूलियन वैल्यूज़ का एक ऐरे बनाएंगे, जहां इंडेक्स i पर वेरिएबल फ्लैग