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) {
string ans;
int lena = a.length()-1, lenb = b.length()-1;
int handle = 0; //保存进位值
while (lena >= 0 || lenb >= 0 || handle == 1) {
handle += lena >= 0 ? a[lena--]-'0' : 0;
handle += lenb >= 0 ? b[lenb--]-'0' : 0;
ans = char(handle % 2 + '0') + ans;//字符串连接
handle /= 2;
}
return ans;
}
};