简单题还打卡?我是水货。
时间复杂度
O(n)
,空间复杂度O(n)
,以后再学更好的写法。
注意
c%2
,c/2
。
class Solution {
public:
string addBinary(string a, string b) {
reverse(a.begin(), a.end());
reverse(b.begin(), b.end());
int c=0;
int i=0;
while(i < a.length() && i < b.length())
{
c = a[i] -'0' + b[i] -'0' + c;
a[i] = '0' + c % 2;
c /= 2;
i++;
}
while(i < a.length())
{
c = a[i] -'0' + c;
a[i] = '0' + c % 2;
c /= 2;
i++;
}
while(i < b.length())
{
c = b[i] -'0' + c;
a += '0' + c % 2;
c /= 2;
i++;
}
if(c) a += '1';
reverse(a.begin(), a.end());
return a;
}
};