对简单题重拳出击。直接上代码。
class Solution {
public:
string addBinary(string a, string b) {
string str;
int overflow = 0;
int aIdx = a.size() - 1;
int bIdx = b.size() - 1;
while(aIdx >= 0 || bIdx >= 0)
{
int tmpA = 0;
int tmpB = 0;
int sum = 0;
if(aIdx >= 0)
{
tmpA = static_cast<int>(a[aIdx] - '0');
}
else
{
tmpA = 0;
}
if(bIdx >= 0)
{
tmpB = static_cast<int>(b[bIdx] - '0');
}
else
{
tmpB = 0;
}
sum = tmpA + tmpB + overflow;
if(sum == 2)
{
overflow = 1;
str.insert(0, 1, '0');
}
else if(sum == 3)
{
overflow = 1;
str.insert(0, 1, '1');
}
else
{
str.insert(0, 1, static_cast<char>(sum + '0'));
overflow = 0;
}
aIdx--;
bIdx--;
}
if(overflow)
{
str.insert(0, 1, '1');
}
return str;
}
};