Given two binary strings, return their sum (also a binary string).
The input strings are both non-empty and contains only characters 1
or 0
.
Example 1:
Input: a = "11", b = "1" Output: "100"
Example 2:
Input: a = "1010", b = "1011" Output: "10101"
class Solution {
public:
string addBinary(string a, string b) {
int len=min(a.length(),b.length()),c=0,i;
string result;
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
for(i=0;i<len;i++){
result+=(a[i]+b[i]-'0'-'0'+c)%2+'0';
c=(a[i]+b[i]-'0'-'0'+c)/2;
}
for(;i<a.length();i++){
result+=(a[i]-'0'+c)%2+'0';
c=(a[i]-'0'+c)/2;
}
for(;i<b.length();i++){
result+=(b[i]-'0'+c)%2+'0';
c=(b[i]-'0'+c)/2;
}
if(c==1)
result+='1';
reverse(result.begin(),result.end());
return result;
}
};