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

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


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

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

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

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

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

चरण

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

n := S का आकार res := एक खाली स्ट्रिंग 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  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++ में बाइनरी ट्री में अधिकतम (या न्यूनतम) मान ढूंढें C++ में बाइनरी ट्री में अधिकतम (या न्यूनतम) मान ढूंढें

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

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

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

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

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