Given two binary strings, return their sum (also a binary string).
For example,
a = “11”
b = “1”
Return “100”.
解:
一般解法很容易想到,无非是一位一位地相加,两个string不等长最多想到把短的填充0到等长,
看到评论区有一个很漂亮的代码,c==1 用的很聪明啊
class Solution
{
public:
string addBinary(string a, string b)
{
string s = "";
int c = 0, i = a.size() - 1, j = b.size() - 1;
while(i >= 0 || j >= 0 || c == 1)
{
c += i >= 0 ? a[i --] - '0' : 0;
c += j >= 0 ? b[j --] - '0' : 0;
s = char(c % 2 + '0') + s;
c /= 2;
}
return s;
}
};