两个用字符串存储的二进制数相加。
class Solution {
public:
string addBinary(string a, string b) {
string ff;
int sum=0;
int nn=0;
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
int min=a.size()<b.size()?a.size():b.size();
int go=0;
int ans;
for(int ii=0;ii<min;ii++){
ans=a[ii]-'0'+b[ii]-'0'+go;
go=ans/2;
ans%=2;
ff+=ans+'0';
}
int dd=min;
while(dd<a.size()){
ans=a[dd]-'0'+go;
go=ans/2;
ans%=2;
ff+=ans+'0';
dd++;
}
dd=min;
while(dd<b.size()){
ans=b[dd]-'0'+go;
go=ans/2;
ans%=2;
ff+=ans+'0';
dd++;
}
if(go)ff+=go+'0';
reverse(ff.begin(),ff.end());
return ff;
}
};