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

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


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

यहां, हम सभी नंबर लेंगे और बिटवाइज और उनमें से यानी बिन [0] | . का पता लगाएंगे बिन [1] |... बिन [एन-2] | बिन[n]

समस्या को समझने के लिए एक उदाहरण लेते हैं,

इनपुट -

bin[] = {“1001”, “11001”, “010101”}

आउटपुट -

011101

स्पष्टीकरण − बिटवाइज़ या सभी बाइनरी स्ट्रिंग के −

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

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

आइए एल्गोरिथम की कार्यप्रणाली को दिखाने के लिए एक उदाहरण लेते हैं -

bin[] = {“1101”, “011010” , “00111”}

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

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

बिटवाइज़ या सभी स्ट्रिंग्स ढूँढना - 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<<"The bitwise OR of all the binary String of the string array is "<<bitwiseOR(bin, n);
   return 0;
}

आउटपुट

The bitwise OR of all the binary String of the string array is 011111

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

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

  1. सी++ में न्यूनतम स्ट्रिंग

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

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

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