class Solution {
public:
string addBinary(string a, string b) {
std::string result;
if(a.size() == 0 || b.size() == 0) {
return a.size() == 0? b:a;
}
int jinwei = 0;
for(int i = a.size()-1, j = b.size()-1; i >=0 || j >= 0; --j, --i) {
int sum = jinwei;
sum += i >= 0? a[i]-'0':0;
sum += j >= 0? b[j]-'0':0;
result = to_string(sum%2) + result;
jinwei = sum/2;
}
result = (jinwei == 1? "1":"") + result;
//result += (jinwei == 1? "1":"");
//reverse(result.begin(), result.end());
return std::move(result);
}
};