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

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

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

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

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

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

  • अस्थायी:=रिक्त स्ट्रिंग

  • अनुरोध :=2^के

  • इनिशियलाइज़ करने के लिए:=0, जब i <साइज़ ऑफ़ s, अपडेट (i से 1 तक बढ़ाएँ), करें -

    • अस्थायी:=अस्थायी + एस [i]

    • अगर मैं>=के, तो -

      • अस्थायी की पहली अनुक्रमणिका से एक वर्ण हटाएं

    • अगर मैं>=के -1, तो -

      • v

        . में अस्थायी डालें
    • यदि v का आकार req के समान है, तो -

      • सही लौटें

  • झूठी वापसी

उदाहरण

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

#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++ में एक बाइनरी ट्री की पूर्णता की जाँच करें

    मान लीजिए कि हमारे पास एक बाइनरी ट्री है। हमें यह जांचना है कि ट्री पूर्ण बाइनरी ट्री है या नहीं। स्तर n के एक पूर्ण बाइनरी ट्री में n-1 पूर्ण स्तर होते हैं, और स्तर n पर सभी नोड्स बाईं ओर से भरे जाते हैं। तो अगर इनपुट ट्री जैसा है - तब आउटपुट सही होगा, क्योंकि यह पूर्ण बाइनरी ट्री है। इसे हल

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

    विचार करें कि हमारे पास एक बाइनरी ट्री है। हमें यह पता लगाना है कि पेड़ में आकार 2 या उससे अधिक के कुछ डुप्लिकेट सबट्री हैं या नहीं। मान लीजिए हमारे पास नीचे जैसा एक बाइनरी ट्री है - आकार 2 के दो समान उपप्रकार हैं। हम ट्री क्रमांकन और हैशिंग प्रक्रिया का उपयोग करके इस समस्या को हल कर सकते हैं। वि

  1. पायथन प्रोग्राम यह जांचने के लिए कि क्या एक स्ट्रिंग में सभी अद्वितीय वर्ण हैं

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