题目:
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;
}
};
本文介绍了一种解决两个二进制字符串相加问题的方法。通过使用栈来逆序存储每一位的计算结果,并处理进位逻辑,最终得到正确的二进制和。此算法适用于需要进行二进制运算的场景。
1551

被折叠的 条评论
为什么被折叠?



