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

C++ में बाइनरी स्ट्रिंग में हर जगह 1 के दो लगातार ऑकरेंस हैं या नहीं जांचें


यहां हम एक और दिलचस्प समस्या देखेंगे। हमें एक ऐसा कोड लिखना है जो एक स्ट्रिंग स्वीकार करे, जिसमें निम्नलिखित मानदंड हों:

  • लगातार 1s का हर ग्रुप लंबाई 2 का होना चाहिए
  • लगातार 1s का हर ग्रुप 1 या अधिक 0s के बाद आना चाहिए

मान लीजिए एक स्ट्रिंग है जैसे 0110, यह वैलिड स्ट्रिंग है, जबकि 001110, 010 वैलिड नहीं हैं।

यहां दृष्टिकोण सरल है। हमें 1 के ऑकरेंस ढूंढने हैं और जांचना है कि क्या यह सब-स्ट्रिंग 011 का हिस्सा है या नहीं। यदि किसी भी सब-स्ट्रिंग के लिए कंडीशन फेल होती है तो false रिटर्न करें, अन्यथा true।

उदाहरण

#include <bits/stdc++.h> using namespace std; bool isValidStr(string str) {    int n = str.length();    int index = find(str.begin(), str.end(), '1') - str.begin();    if (index == 0) //जब स्ट्रिंग 1 से शुरू होती है, तो false रिटर्न करें    return false;    while (index <= n - 1) {       if (str[index - 1] != '0') // यदि 1 किसी 0 के बाद नहीं आता          return false;       if (index + 1 < n && str[index + 1] != '1') // यदि '1' के बाद दूसरा '1' नहीं है          return false;       if (index + 2 < n && str[index + 2] == '1') // यदि सब-स्ट्रिंग "0111" टाइप की है          return false;       if (index == n - 1) // यदि स्ट्रिंग सिंगल 1 से खत्म होती है          return false;       index = find(str.begin() + index + 2, str.end(), '1') - str.begin();    }    return true; } int main() {    string str = "011000110110";    if(isValidStr(str)){       cout << str << " is a valid string";    } else {       cout << str << " is NOT a valid string";    } }

आउटपुट

011000110110 is a valid string

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

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

  1. - C++ में बाइनरी सर्कुलर ऐरे में अधिकतम सतत 1 या 0

    हमें एक सर्कुलर ऐरे दिया गया है। सर्कुलर ऐरे वह ऐरे है जिसके लिए हम मानते हैं कि पहला तत्व अंतिम तत्व के बगल में आता है। इसका उपयोग क्यू को लागू करने के लिए किया जाता है। इसलिए हमें उस ऐरे में अधिकतम सतत 1 या 0 की संख्या गिननी है।आइए उदाहरणों से समझते हैं।इनपुट - Arr[] = { 1,1,0,1,0,1,0,1,1,1 }आउटपु

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

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