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

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

मान लीजिए कि हमारे पास n बिट्स के साथ एक बाइनरी स्ट्रिंग S है। कोई निरर्थक अग्रणी शून्य नहीं हैं। हम S पर दो अलग-अलग ऑपरेशन कर सकते हैं -

  • आसन्न बिट्स के किसी भी जोड़े को स्वैप करें

  • सभी "11" को "1" से बदलें

मान लें कि वैल (एस) एस का दशमलव प्रतिनिधित्व है। हमें न्यूनतम सही स्ट्रिंग ढूंढनी है, जहां वैल (ए) <वैल (बी)

होने पर सही स्ट्रिंग ए एक और सही स्ट्रिंग 'बी' से कम है।

इसलिए, यदि इनपुट S ="1001" जैसा है, तो आउटपुट 100 होगा, क्योंकि हम "1001" -> "1010" -> "1100" -> "100" जैसे ऑपरेशन कर सकते हैं।

कदम

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

n := size of S
res := a blank string
res := res + S[0]
for initialize i := 1, when i < n, update (increase i by 1), do:
   if S[i] is same as '0', then:
      res := res concatenate "0"
return res

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

#include <bits/stdc++.h>
using namespace std;
string solve(string S){
   int n = S.size();
   string res = "";
   res += S[0];
   for (int i = 1; i < n; i++){
      if (S[i] == '0'){
         res += "0";
      }
   }
   return res;
}
int main(){
   string S = "1001";
   cout << solve(S) << endl;
}

इनपुट

"1001"

आउटपुट

100

  1. C++ में बाइनरी ट्री में अधिकतम (या न्यूनतम) खोजें

    इस समस्या में हमें एक बाइनरी ट्री दिया जाता है। हमारा काम बाइनरी ट्री में अधिकतम (या न्यूनतम) खोजना है। समस्या का विवरण: हमें बाइनरी ट्री के उन नोड्स को खोजने की आवश्यकता है जिनका बाइनरी ट्री में अधिकतम और न्यूनतम मान है। समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट: आउटपुट: अधिकतम

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

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

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

    मान लें कि हमारे पास कुछ नोड्स के साथ एक बाइनरी ट्री है। हमें रूट और दूसरे नोड u के बीच की दूरी का पता लगाना है। मान लीजिए पेड़ नीचे जैसा है: अब बीच की दूरी (रूट, 6) =2, पथ की लंबाई 2, के बीच की दूरी (रूट, 8) =3 आदि। इस समस्या को हल करने के लिए, हम बाएँ और दाएँ सबट्री में नोड को खोजने के लिए एक