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

सी++ में बाइनरी स्ट्रिंग "एबी" मुक्त बनाने के लिए संचालन की संख्या

हमें एक स्ट्रिंग दी गई है जिसमें "ab" हो सकता है और कार्य स्ट्रिंग से "ab" को हटाने या हटाने के लिए आवश्यक संचालन की गणना करना है। तो, हमारा काम सबसे पहले यह जांचना है कि स्ट्रिंग में "ab" है या नहीं यदि हाँ तो हमें स्ट्रिंग को "ab" मुक्त बनाना होगा।

इनपुट - स्ट्रिंग स्ट्र ="अबाबा"

आउटपुट − बाइनरी स्ट्रिंग को "ab" मुक्त बनाने के लिए संचालन की संख्या है - 4

स्पष्टीकरण - जैसा कि हम स्ट्रिंग में देख सकते हैं "ab" पैटर्न दो बार हो रहा है इसलिए हम "ab" को "bba" से बदल देंगे, इसलिए संचालन की संख्या 1 है और अब स्ट्रिंग bbaabaa है। फिर से, हम "ab" को "bba" से बदल देंगे, इसलिए संचालन की संख्या 2 है और अब स्ट्रिंग bbabbaaa है। हमारे पास एक और "अब" है, इसलिए संचालन की संख्या 3 है और अब स्ट्रिंग बब्बाबा है। जैसे-जैसे हम परीक्षित “ab” को “bba” से बदलना जारी रखेंगे, स्ट्रिंग “ab” मुक्त हो जाएगी।

इनपुट - str ="आबा"

आउटपुट − बाइनरी स्ट्रिंग को "ab" मुक्त बनाने के लिए संचालन की संख्या है - 1

स्पष्टीकरण - जैसा कि हम स्ट्रिंग में देख सकते हैं "ab" पैटर्न एक बार हो रहा है इसलिए हम "ab" को "bba" से बदल देंगे, इसलिए संचालन की संख्या 1 है और अब स्ट्रिंग bbaaa है। अब, स्ट्रिंग “ab” मुफ़्त है और गिनती 1 है।

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • एक स्ट्रिंग इनपुट करें और एक स्ट्रिंग की लंबाई की गणना करें और आगे की प्रक्रिया के लिए डेटा को फ़ंक्शन में पास करें।

  • स्ट्रिंग "ab" को मुक्त बनाने के लिए आवश्यक संचालन को संग्रहीत करने के लिए एक अस्थायी चर गणना की घोषणा करें।

  • आकार स्ट्रिंग लंबाई की एक वर्ण सरणी बनाएं + 1

  • स्ट्रिंग के चरित्र को strcpy() विधि का उपयोग करके एक सरणी में संग्रहीत करें।

  • लूप फॉर को 0 से स्ट्रिंग की लंबाई तक प्रारंभ करें

  • लूप के अंदर, IF arr[length - i - 1] ='a' चेक करें, फिर काउंट को काउंट + 0 के रूप में सेट करें और टोटल वेरिएबल को टोटल * 2

    के रूप में सेट करें।
  • नहीं तो, कुल संख्या को 1 से बढ़ाएँ।

  • गिनती लौटाएं

  • परिणाम प्रिंट करें।

उदाहरण

#include<bits/stdc++.h>
using namespace std;
int operations_ab_free(string str, int len){
   int count = 0;
   char arr[length + 1];
   strcpy(arr, str.c_str());
   int total = 0;
   for (int i = 0; i < len; i++){
      if (arr[len - i - 1] == 'a'){
         count = (count + total);
         total = (total * 2);
      }
      else{
         total++;
      }
   }
   return count;
}
int main(){
   string str = "ababaa";
   int length = str.length();
   cout<<"Count of operations to make a binary string “ab” free are: "<<operations_ab_free(str,
length)<<endl;
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Count of operations to make a binary string “ab” free are: 4

  1. सी ++ में बाइनरी मैट्रिक्स को शून्य मैट्रिक्स में बदलने के लिए संचालन की संख्या की गणना करने का कार्यक्रम

    मान लीजिए कि हमारे पास एक बाइनरी मैट्रिक्स है। अब एक ऑपरेशन पर विचार करें जहां हम एक सेल लेते हैं और इसे और उसके सभी पड़ोसी कोशिकाओं (ऊपर, नीचे, बाएं, दाएं) को फ्लिप करते हैं। हमें आवश्यक संक्रियाओं की न्यूनतम संख्या ज्ञात करनी होगी जैसे कि मैट्रिक्स में केवल 0s हों। अगर कोई समाधान नहीं है, तो -1 लौ

  1. C++ में बिटवाइज़ या N बाइनरी स्ट्रिंग्स का

    इस समस्या में, हमें बाइनरी स्ट्रिंग्स के आकार n का एक सरणी बिन [] दिया जाता है। हमारा काम n बाइनरी स्ट्रिंग्स के बिटवाइज़ OR (&) को खोजने के लिए एक प्रोग्राम बनाना है। यहां, हम सभी नंबर लेंगे और बिटवाइज और उनमें से यानी बिन [0] | . का पता लगाएंगे बिन [1] |... बिन [एन-2] | बिन[n] समस्या को समझने के

  1. C++ में ऊंचाई h के संतुलित बाइनरी ट्री की गणना करें

    हमें एक बाइनरी ट्री की ऊंचाई H के साथ दिया गया है। लक्ष्य दी गई ऊंचाई के संतुलित बाइनरी ट्री की संख्या/गिनती ज्ञात करना है। एक बाइनरी ट्री - एक ट्री डेटा संरचना है जिसमें प्रत्येक नोड में अधिकतम दो बच्चे होते हैं, जो कि बायां बच्चा और दायां बच्चा होता है। ऊंचाई-संतुलित बाइनरी ट्री - को एक बाइनरी ट