哈哈,这居然还是简单题,我一直一以为二进制加法很简单。但是还是和高精度加法一个叼情况
class Solution {
public:
string addBinary(string a, string b) {
//先去添加前导0
string res;
reverse(a.begin(),a.end()),reverse(b.begin(),b.end());
int c=0;
for(int i=0;i<a.size()||i<b.size();i++){
//这个很巧妙,使用逻辑运算来统计数位
c+=i<a.size()?a[i]=='1':0;
c+=i<b.size()?b[i]=='1':0;
res.push_back(c%2?'1':'0');
c/=2;
}
if(c) res.push_back('1');
reverse(res.begin(),res.end());
return res;
}
};