Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
#include<string>
#include<iostream>
using std::endl;
using std::cout;
using std::string;
class Solution
{
public:
string addBinary(string a, string b)
{
unsigned short waLen, wbLen, wcLen;
string c;
string strAdd("0");
waLen = a.size();
wbLen = b.size();
if (waLen > wbLen)
{
wcLen = waLen;
for (unsigned short sTemp = 0; sTemp < waLen - wbLen; sTemp++)
{
b = strAdd + b;
}
}
else
{
wcLen = wbLen;
for (unsigned short sTemp = 0; sTemp < wbLen - waLen; sTemp++)
{
a = strAdd + a;
}
}
for (short sTemp = wcLen - 1; sTemp >= 0; sTemp--)
{
c = (a[sTemp] + b[sTemp] + strAdd[0])%2 == 1 ? '1' + c : '0' + c;
strAdd[0] = '0' + (a[sTemp] + b[sTemp] + strAdd[0]) / ('1' * 2 + '0');
}
if (strAdd[0] == '1')
{
c = '1' + c;
}
return c;
}
};
int main()
{
string a("1010");
string b("1001");
string c;
c = '1' * 2;
Solution SoFunction;
c = SoFunction.addBinary(a, b);
cout << c << endl;
system("pause");
}