题目:
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) {
int i = a.size() - 1;
int j = b.size() - 1;
int k = 0, flag = 0;
stack<int> s;
while (i >= 0 || j >= 0) {
if (i >= 0) {
flag += a[i] - '0';
i--;
}
if (j >= 0) {
flag += b[j] - '0';
j--;
}
if (flag >= 2) {
s.push(flag - 2);
flag = 1;
}
else {
s.push(flag);
flag = 0;
}
}
if (flag == 1)
s.push(flag);
string ans;
while (!s.empty()) {
ans.push_back(s.top() + '0');
s.pop();
}
return ans;
}
};