原题链接 https://leetcode.com/problems/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 al = a.length();
int bl = b.length();
if (al > bl)for (int i = 0; i < al - bl; ++i)b = '0' + b;
if (bl > al)for (int i = 0; i < bl - al; ++i)a = '0' + a;
int l = max(al, bl);
int c = 0;
string ans = "";
for (int i = l - 1; i >= 0; --i)
{
int op1 = a[i] - '0';
int op2 = b[i] - '0';
ans = string(1, (op1 + op2 + c) % 2 + '0') + ans;
c = (op1 + op2 + c) / 2;
}
if (c)ans = "1" + ans;
return ans;
}
};