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

C++ में बाइनरी स्ट्रिंग से सबस्ट्रिंग 010 को हटाने के लिए न्यूनतम कदम

समस्या कथन

एक बाइनरी स्ट्रिंग को देखते हुए, कार्य इस बाइनरी स्ट्रिंग से सबस्ट्रिंग 010 को हटाने के लिए न्यूनतम चरणों की गणना करना है

उदाहरण

यदि इनपुट स्ट्रिंग 010010 है तो 2 चरणों की आवश्यकता है

  • पहले 0 को 1 में बदलें। अब स्ट्रिंग 110010 हो जाती है
  • अंतिम 0 को 1 में बदलें। अब अंतिम स्ट्रिंग 110011 हो जाती है

एल्गोरिदम

1. Iterate the string from index 0 sto n-2
2. If in binary string has consecutive three characters ‘0’, ‘1’, ‘0’ then any one character can be changed
Increase the loop counter by 2

उदाहरण

#include <bits/stdc++.h>
using namespace std;
int getMinSteps(string str) { 
   int cnt = 0;
   for (int i = 0; i < str.length() - 2; ++i) {
      if (str[i] == '0' && str[i + 1] == '1' && str[i+ 2] == '0') {
         ++cnt;
         i += 2;
      }
   }
   return cnt;
}
int main() {
   string str = "010010";
   cout << "Minimum required steps = " << getMinSteps(str)
   << endl;
   return 0;
}

जब आप उपरोक्त प्रोग्राम को संकलित और निष्पादित करते हैं। यह निम्न आउटपुट उत्पन्न करता है

आउटपुट

Minimum required steps = 2

  1. सी ++ में स्ट्रिंग से बाइनरी ट्री का निर्माण करें

    मान लीजिए कि हमारे पास एक स्ट्रिंग है जिसमें कोष्ठक और पूर्णांक हैं। हमें उस स्ट्रिंग से एक बाइनरी ट्री बनाना है। संपूर्ण इनपुट एक बाइनरी ट्री का प्रतिनिधित्व करता है। इसमें एक पूर्णांक होता है जिसके बाद शून्य, एक या दो जोड़े कोष्ठक होते हैं। पूर्णांक रूट के मान का प्रतिनिधित्व करता है और कोष्ठक की

  1. C++ में बाइनरी ट्री की न्यूनतम गहराई

    मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें उस वृक्ष की न्यूनतम गहराई ज्ञात करनी है। जैसा कि हम जानते हैं कि न्यूनतम गहराई रूट नोड से निकटतम लीफ नोड तक सबसे छोटे पथ के साथ नोड्स की संख्या है। तो, अगर इनपुट पसंद है तो आउटपुट 2 . होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - ट्री नोड्स

  1. सी++ में std::string से रिक्त स्थान निकालें

    इस प्रोग्राम में हम देखेंगे कि C++ में std::string से स्पेस को कैसे हटाया जाए। इसे हटाने के लिए हम रिमूव () फंक्शन का इस्तेमाल करेंगे। इस रिमूव () फ़ंक्शन के साथ यह इटरेटर की शुरुआत और अंत लेता है, फिर तीसरा तर्क लेता है जिसे उस इटरेटर ऑब्जेक्ट से हटा दिया जाएगा। Input: A string "This is C++ Pr