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

C++ . में दिए गए स्ट्रिंग में "1(0+)1" के सभी पैटर्न खोजें

मान लीजिए कि एक स्ट्रिंग में 1(0+)1 जैसे पैटर्न हैं। जहां (0+) 1s की गैर-रिक्त लगातार घटनाओं को इंगित करता है। हमें सभी पैटर्न खोजने होंगे। पैटर्न ओवरलैप कर सकते हैं। स्ट्रिंग जरूरी नहीं कि एक बाइनरी स्ट्रिंग हो। यह केवल अंक और लोअरकेस वर्ण धारण कर सकता है। मान लीजिए कि स्ट्रिंग 1101001 की तरह है, तो ऐसे दो पैटर्न हैं। 101 और 1001.

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

  • स्ट्रिंग में सभी वर्ण c के माध्यम से पुनरावृति करें

  • जब c 1 होता है, तब हम तब तक पुनरावृति करते हैं जब तक कि तत्व 0

    . न हो जाए
  • जब 0 की धारा समाप्त हो जाती है, तो हम जांचेंगे कि अगला वर्ण 1 है या नहीं

  • स्ट्रिंग के अंत तक इन चरणों को दोहराया जाएगा।

उदाहरण

#include<iostream>
using namespace std;
int countBinPattern(string main_str) {
   char last_char = main_str[0];
   int i = 1, counter = 0;
   while (i < main_str.size()) {
      if (main_str[i] == '0' && last_char == '1') {
         while (main_str[i] == '0')
            i++;
         if (main_str[i] == '1')
            counter++;
      }
      last_char = main_str[i];
         i++;
   }
   return counter;
}
int main() {
   string str = "10010110000101";
   cout << "Number of substrings of pattern 1(0+)1 is: " << countBinPattern(str);
}

आउटपुट

Number of substrings of pattern 1(0+)1 is: 4

  1. C++ का उपयोग करके एक स्ट्रिंग के सबस्ट्रिंग की संख्या ज्ञात करें

    इस लेख में, आप किसी दिए गए स्ट्रिंग में बनाए जा सकने वाले सबस्ट्रिंग (गैर-रिक्त) की संख्या को खोजने के तरीकों के बारे में जानेंगे। Input : string = “moon” Output : 10 Explanation: Substrings are ‘m’, ‘o’, ‘o’, ‘n’, ‘mo’, &lsqu

  1. C++ में दिए गए परफेक्ट बाइनरी ट्री के सभी नोड्स का योग ज्ञात करें

    मान लीजिए कि हमारे पास एक सकारात्मक पूर्णांक L है, जो एक पूर्ण बाइनरी ट्री में स्तरों की संख्या का प्रतिनिधित्व करता है। इस परफेक्ट बाइनरी ट्री में लीफ नोड्स की संख्या 1 से n तक होती है। जहां n लीफ नोड्स की संख्या है। पैरेंट नोड बच्चों का योग है। हमारा काम इस परफेक्ट बाइनरी ट्री के सभी नोड्स के योग

  1. पायथन रेगेक्स का उपयोग करके किसी दिए गए स्ट्रिंग में 10+1 के सभी पैटर्न खोजें

    हमें दिए गए स्ट्रिंग में रेगेक्स पैटर्न 10+1 खोजने की जरूरत है। इसके लिए हम पायथन में उपलब्ध री मॉड्यूल का उपयोग कर सकते हैं। इस पैकेज में फाइंड ऑल नामक एक विधि है जो रेगेक्स को स्वीकार करती है और जिस स्ट्रिंग को हम खोजना चाहते हैं। यह हमें उस स्ट्रिंग में पैटर्न की सभी घटनाओं को देता है। उदाहरण के