## Given two binary strings, write a function that print the sum of the giiven two binary strings. where sum is also a binary string

### Example

**INPUT**

s1 = “101”

s2 =”11″

**OUTPUT**

res = “1000”

## Algorithm

**1.** Start from the last character in both strings

**2.** Add the characters in both strings one by one, if the sum is more than 1, then store 1 as a carry which will be added for next digits

## C++ Program

#include <bits/stdc++.h> using namespace std; string addBinaryStrings(string s1, string s2) { string res = ""; int sum = 0, carry = 0; int i = s1.length()-1; int j = s2.length()-1; while(i>=0 || j>=0 || sum == 1) { //calculating the sum of both elements in s1 and s2 //If there there is no elment in any string, just add elements from other string sum = carry + (i>=0? s1[i]-'0':0) + (j>=0? s2[j]-'0':0); // update carry for next calulation // update sum if it is greater than 1 if (sum>1) { sum = 0; carry = 1; } else { carry = 0; } //adding sum to result res = char(sum + '0') + res; i--; j--; } if (carry == 1) { res = char(carry + '0') + res; } return res; } int main() { string s1 = "101"; string s2 = "11"; cout<<addBinaryStrings(s1,s2)<<endl; }

Try It