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) {
int lena = a.length(), lenb = b.length();
if(lena < lenb) //一开始写成a<b,造成某些问题,嘿嘿
return addBinary(b,a);
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
//让两个字符串长度相等
for(int i=lenb;i<lena;i++)
b += '0';
for(int i=0;i<lena;i++)
{
a[i] += b[i]-'0'; //加上数字,而不是字符
if(a[i] >= '2')
{
if(i == lena-1)
a += '1';
else
a[i+1] += 1;
a[i] -= 2;
}
}
reverse(a.begin(),a.end());
return a;
}
};