Add Binary
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 la = a.size(), lb = b.size();
int len = max(la, lb) + 2;
char* res = new char[len];
memset(res, 0, len);
int left = 0, cur;
int ia = la - 1, ib = lb - 1, ic = len - 2;
while (ia >= 0 && ib >= 0) {
cur = a[ia--] + b[ib--] - 2 * '0' + left;
if (cur > 1) {
res[ic--] = '0' + cur % 2;
left = 1;
} else {
res[ic--] = '0' + cur;
left = 0;
}
}
while (ia >= 0) {
cur = a[ia--] - '0' + left;
if (cur > 1) {
res[ic--] = '0' + cur % 2;
left = 1;
} else {
res[ic--] = '0' + cur;
left = 0;
}
}
while (ib >= 0) {
cur = b[ib--] + left - '0';
if (cur > 1) {
res[ic--] = '0' + cur % 2;
left = 1;
} else {
res[ic--] = '0' + cur;
left = 0;
}
}
if (left > 0) res[ic--] = '1';
return string(res+ic+1);
}
};

本文介绍了一种解决两个二进制字符串相加问题的方法。通过C++实现了一个addBinary函数,该函数接收两个二进制字符串作为输入,并返回它们相加后的二进制字符串结果。文章提供了一个具体的示例,即当输入为a='11'和b='1'时,输出为'100'。
1908

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



