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

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


इस समस्या में, हमें आकार n की बाइनरी स्ट्रिंग्स की एक सरणी bin[] दी गई है। हमारा कार्य n बाइनरी स्ट्रिंग्स का बिटवाइज OR (|) ज्ञात करने के लिए एक प्रोग्राम बनाना है।

यहां, हम सभी संख्याओं को लेंगे और उनका बिटवाइज AND ढूंढेंगे यानी bin[0] | bin[1] |... bin[n-2] | bin[n]

उदाहरण

इनपुट -

bin[] = {"1001", "11001", "010101"}

आउटपुट -

011101

व्याख्या - सभी बाइनरी स्ट्रिंग्स का बिटवाइज OR -

(1001) | (11001) | (010101) = 011101

इस समस्या को हल करने के लिए, हम बस सबसे अधिक बिट्स वाली स्ट्रिंग (अधिकतम लंबाई वाली स्ट्रिंग) ढूंढेंगे। फिर हम सभी स्ट्रिंग्स में पर्याप्त संख्या में अग्रणी 0 जोड़ेंगे। फिर बिट्स का बिटवाइज OR ढूंढेंगे।

उदाहरण

bin[] = {"1101", "011010" , "00111"}

अधिकतम लंबाई वाली स्ट्रिंग 011010 है जिसकी लंबाई 6 है। तो, हम अन्य स्ट्रिंग्स में अग्रणी 0 जोड़ेंगे।

अपडेटेड स्ट्रिंग्स - "001101", "011010", "000111"।

सभी स्ट्रिंग्स का बिटवाइज OR ढूंढना - 001101 | 011010 | 000111 = 011111

कार्यक्रम उदाहरण

#include <bits/stdc++.h>
using namespace std;

string bitwiseOR(string* bin, int n){
    string result;
    int max_size = INT_MIN;
    for (int i = 0; i < n; i++) {
        max_size = max(max_size, (int)bin[i].size());
        reverse(bin[i].begin(), bin[i].end());
    }
    for (int i = 0; i < n; i++) {
        string s;
        for (int j = 0; j < max_size - bin[i].size(); j++) s += '0';
        bin[i] = bin[i] + s;
    }
    for (int i = 0; i < max_size; i++) {
        int insertBit = 0;
        for (int j = 0; j < n; j++)
            insertBit = insertBit | (bin[j][i] - '0');
        result += (insertBit + '0');
    }
    reverse(result.begin(), result.end());
    return result;
}

int main() {
    string bin[] = { "1101", "011010", "00111" };
    int n = sizeof(bin) / sizeof(bin[0]);
    cout << "स्ट्रिंग सरणी की सभी बाइनरी स्ट्रिंग्स का बिटवाइज OR " << bitwiseOR(bin, n);
    return 0;
}

आउटपुट

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

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

  1. - C++ में न्यूनतम स्ट्रिंग परिवर्तन

    मान लीजिए हमारे पास समान लंबाई की दो स्ट्रिंग्स s और t हैं, और दोनों लोअरकेस अक्षरों में हैं। पहले हम s को किसी भी क्रम में पुनर्व्यवस्थित करते हैं, फिर s को t में बदलने के लिए आवश्यक न्यूनतम परिवर्तनों की संख्या गिनते हैं। उदाहरण के लिए, यदि इनपुट है s = eccynue, t = science, तो आउटपुट 2 होगा। यद

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

    दो बाइनरी संख्या वाली स्ट्रिंग्स दी गई हैं, हमें उन दो बाइनरी स्ट्रिंग्स को जोड़कर प्राप्त परिणाम ढूंढना है और परिणाम को बाइनरी स्ट्रिंग के रूप में लौटाना है। बाइनरी संख्याएं वे संख्याएं हैं जिन्हें या तो 0 या 1 के रूप में व्यक्त किया जाता है। 2 बाइनरी संख्याओं को जोड़ते समय बाइनरी जोड़ का नियम हो