class Solution {
public:
string addBinary(string a, string b) {
reverse(a.begin(), a.end());
reverse(b.begin(), b.end());
int t = 0;
string c;
for (int i = 0; i < a.size() || i < b.size(); i ++) { //也可以将t==1加在for循环判断条件中进行处理,最高位进位的处理
if (i < a.size()) t += a[i] - '0';
if (i < b.size()) t += b[i] - '0';
c += to_string(t % 2);
t /= 2;
}
if (t) c += to_string(t);
reverse(c.begin(), c.end());
return c;
}
};
class Solution {
public:
string addBinary(string a, string b) {
reverse(a.begin(), a.end());
reverse(b.begin(), b.end());
string c;
int t = 0;
for (int i = 0; i < a.size() || i < b.size() || t; i ++) {
if (i < a.size()) t += a[i] - '0'; //两个if先算出总和,然后方便后面的进位
if (i < b.size()) t += b[i] - '0';
c += to_string(t % 2); //当前的“个位”,要转成字符串形式
t /= 2; //当前的进位
}
reverse(c.begin(), c.end());
return c;
}
};