Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
两个字符串形式的二进制数相加,返回结果也是字符串形式。
程序很简单,不解释了,直接贴出代码。
AC code:
class Solution {
public:
string addBinary(string a, string b)
{
string result;
int i=a.length()-1,j=b.length()-1;
int aa,bb,rem,carry; //rem本位和 carry 进位
aa=bb=rem=carry=0;
while(i>=0||j>=0)
{
aa=i<0?0:a[i]-'0';
bb=j<0?0:b[j]-'0';
rem=(aa+bb+carry)%2;
carry=(aa+bb+carry)/2;
result.push_back(rem+'0');
i--;
j--;
}
if(carry==1)
result.push_back('1');
reverse(result.begin(),result.end());
return result;
}
};