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

दो बाइनरी स्ट्रिंग्स जोड़ने का प्रोग्राम, और C++ में बाइनरी स्ट्रिंग के रूप में भी वापस लौटें

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

इसलिए, यदि इनपुट a ="10110", b ="10010" जैसा है, तो आउटपुट "101000" होगा।

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

  • रिट:=खाली स्ट्रिंग
  • ना :=a का आकार, nb :=b का आकार
  • i :=na-1, j:=nb-1
  • कैरी:=0
  • जबकि (i>=0 या j>=0), करें:
    • addA :=(यदि i>=0, तो a[i] - '0' का ASCII, अन्यथा 0)
    • addB :=(यदि j>=0, तो b[j] - '0' का ASCII, अन्यथा 0)
    • योग :=addA + addB + कैरी
    • कैरी:=योग/2
    • योग :=योग मोड 2
    • ret :=ret concatenate sum
    • (मैं 1 से घटाएं)
    • (j 1 से घटाएं)
  • यदि कैरी गैर-शून्य है, तो:
    • ret :=ret concatenate कैरी
  • सरणी को उलट दें
  • रिटर्न रिटर्न

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

उदाहरण

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   string solve(string a, string b){
      string ret = "";
      int na = a.size();
      int nb = b.size();
      int i = na - 1;
      int j = nb - 1;
      int carry = 0;
      while(i >= 0 || j >= 0){
         int addA = i >= 0 ? a[i] - '0' : 0;
         int addB = j >= 0 ? b[j] - '0' : 0;
         int sum = addA + addB + carry;
         carry = sum / 2;
         sum %= 2;
         ret += to_string(sum);
         i--;
         j--;
      }
      if(carry)
         ret += to_string(carry); reverse(ret.begin(), ret.end());
         return ret;
   }
};
main(){
   string a = "10110", b = "10010"; Solution ob;
   cout << ob.solve(a, b);
}

इनपुट

"10110","10010"

आउटपुट

101000

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

    मान लीजिए कि हमारे पास दो बाइनरी पेड़ हैं और विचार करें कि जब हम उनमें से एक को दूसरे को कवर करने के लिए रखते हैं, तो दो पेड़ों के कुछ नोड्स ओवरलैप हो जाते हैं जबकि अन्य ओवरलैपिंग होते हैं। हमें उन्हें एक नए बाइनरी ट्री में मिलाना होगा। मर्ज नियम इस तरह है कि यदि दो नोड्स ओवरलैपिंग कर रहे हैं, तो नो

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

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

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

    मान लीजिए कि हमारे पास एक स्ट्रिंग के रूप में दो संख्याएं हैं। हमें उन्हें गुणा करना है और परिणाम को भी एक स्ट्रिंग में वापस करना है। इसलिए यदि संख्याएं 26 और 12 हैं, तो परिणाम 312 होगा इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - दो तर्क x और y लेते हुए यह इंगित करता है कि x, y को विभाजित करता