//字元串的輸入可能會是比較大的數組,需要用字元串逐位相加
class Solution {
public:
string addBinary(string a, string b) {
string result = "";
int max_length = a.length() > b.length() ? a.length() : b.length();
int min_length = a.length() < b.length() ? a.length() : b.length();
int index;
char temp = '0';
if (a.length() > b.length())
for (int i = 0; i<max_length - min_length; i++)
b = '0' + b;
else if (a.length() < b.length())
for (int i = 0; i<max_length - min_length; i++)
a = '0' + a;
for (index = 1; index <= max_length; index++)
{
cout << a[a.length() - index] << ' ' << b[b.length() - index] << endl;
if (a[a.length() - index] == b[b.length() - index] && b[b.length() - index] == '1')
{
if (temp == '1')
result = '1' + result;
else
result = '0' + result;
temp = '1';
}
else if (a[a.length() - index] == b[b.length() - index] && b[b.length() - index] == '0')
{
if (temp == '1')
result = '1' + result;
else
result = '0' + result;
temp = '0';
}
else
{
if (temp == '1')
result = '0' + result;
else
result = '1' + result;
}
}
if (temp == '1')
result = '1' + result;
return result;
}
};