Add Binary
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) {
vector<char> chars;
int la = a.length() - 1;
int lb = b.length() - 1;
int carry = 0;
int temp = 0;
while(la >= 0 || lb >= 0)
{
int inta = 0;
if(la >= 0)
inta = a[la] - '0';
int intb = 0;
if(lb >= 0)
intb = b[lb] - '0';
temp = inta + intb + carry;
carry = temp/2;
temp %= 2;
chars.insert(chars.begin(), (char)(temp + '0'));
--la;
--lb;
}
stringstream oss;
if(carry > 0)
oss << (char)(carry + '0');
for(int i = 0; i < chars.size(); ++i)
oss << chars[i];
return oss.str();
}
};