题目思路:
cpp
class Solution {
public:
string addBinary(string a, string b) {
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
string res;
// 这三个条件,遵循短路原则,i<a.size()不成立,看i<b.size()不成立,若t为0才退出,防止t=1没有来的及处理
for(int i = 0, t = 0; i < a.size() || i < b.size() || t; i++){
if(i < a.size()) t += a[i] - '0';
if(i < b.size()) t += b[i] - '0';
res += to_string(t % 2);
t /= 2;
}
reverse(res.begin(), res.end());
return res;
}
};