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

C++ में बाइनरी स्ट्रिंग में 1s के बीच 0 है या नहीं जांचें


यहां हम एक दिलचस्प समस्या देखेंगे। हमें जांचना है कि क्या किसी स्ट्रिंग में 1s के बीच में 0 है या नहीं। यदि नहीं, तो स्ट्रिंग वैलिड है, अन्यथा इनवैलिड। मान लीजिए तीन स्ट्रिंग्स हैं -

  • 10001111010
  • 00001111100
  • 01111101111

इन तीन स्ट्रिंग्स में से केवल B वैलिड है, क्योंकि 1s की स्ट्रीम के अंदर कोई 0 नहीं है।

इस समस्या को हल करने के लिए, हम स्ट्रिंग में मौजूद पहले 1 का इंडेक्स ढूंढेंगे, और अंतिम 1 का इंडेक्स भी ढूंढेंगे। फिर हम जांचेंगे, क्या इन दो इंडेक्स के बीच कोई 0 है, यदि हां, तो false रिटर्न करें, अन्यथा true (वैलिड के रूप में)।

उदाहरण

#include <iostream> using namespace std; bool hasZeroInOnes(string str) {    int first, last;    for(first = 0; first < str.length(); first++){       if(str[first] == '1')       break;    }    for(last = str.length() - 1; last >= 0; last--){       if(str[last] == '1')       break;    }    for(int i = first+1; i < last; i++){       if(str[i] == '0')       return false;    }    return true; } int main() {    string str = "00001111100";    if(hasZeroInOnes(str)){       cout << str << " is a valid string";    } else {       cout << str << " is NOT a valid string";    } }

आउटपुट

00001111100 is a valid string

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

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

  1. C++ में बाइनरी ट्री लेवल-वाइज क्रमबद्ध है या नहीं जांचें C++ में बाइनरी ट्री लेवल-वाइज क्रमबद्ध है या नहीं जांचें

    समस्या विवरण जांचें कि बाइनरी ट्री लेवल-वाइज क्रमबद्ध है या नहीं। प्रत्येक लेवल में नोड्स बाएं से दाएं क्रमबद्ध हों और प्रत्येक लेवल के मान पिछले लेवल से बड़े हों। एल्गोरिदम (लेवल ऑर्डर ट्रैवर्सल) क्यू का उपयोग करके लेवल ऑर्डर ट्रैवर्सल प्रत्येक लेवल के लिए न्यूनतम (min_val) और अधिकतम (max_val) ट

  1. C++ में जांचें कि बाइनरी ट्री लेवल-वार सॉर्टेड है या नहीं C++ में जांचें कि बाइनरी ट्री लेवल-वार सॉर्टेड है या नहीं

    यहां हम देखेंगे कि बाइनरी ट्री लेवल-वार सॉर्टेड है या नहीं, इसकी जांच कैसे करें। लेवल-वार सॉर्टेड बाइनरी ट्री नीचे जैसा दिखेगा -प्रत्येक लेवल में, नोड्स बाएं से दाएं सॉर्टेड होते हैं, और प्रत्येक लेयर में अपने पिछले लेवल से अधिक मान होता है।हम इस समस्या को लेवल ऑर्डर ट्रैवर्सल करके हल कर सकते हैं, औ