Add Binary
My SubmissionsGiven 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) {
// Note: The Solution object is instantiated only once and is reused by each test case.
if (a.length() < b.length()) {
a.swap(b);
}
a.insert(a.begin(), '0');
int i = a.length()-1;
int j = b.length()-1;
while (i > 0) {
if (a.at(i) - '0' > 1) {
a.at(i - 1) = a.at(i-1) + ((a.at(i) - '0') >> 1);
a.at(i) = (a.at(i) - '0') % 2 + '0';
}
if (j >= 0) {
int t = (a.at(i) - '0') + (b.at(j) - '0');
a.at(i) = t%2 + '0';
a.at(i-1) = a.at(i-1) + (t >> 1);
}
--i;
--j;
}
if (a.at(0) == '0')
return string (a.begin() + 1, a.end());
return a;
}
};