Question:
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
按位求和
class Solution { public: string addBinary(string a, string b) { string res; int N1=a.size(); int N2=b.size(); int maxlength=N1>N2?N1:N2; reverse(a.begin(),a.end()); reverse(b.begin(),b.end()); int i=0; int sum=0; while(i<maxlength) { if(i<N1&&i<N2) sum+=((a[i]-'0')+(b[i]-'0')); else if(i<N1&&i>=N2) sum+=(a[i]-'0'); else sum+=(b[i]-'0'); res.push_back(sum%2+'0'); sum=sum/2; i++; } if(sum>0) res.push_back(sum+'0'); reverse(res.begin(),res.end()); return res; } };
原文:http://blog.csdn.net/u011391629/article/details/52115985