Given two binary strings, return their sum (also a binary string).
For example,
a = “11”
b = “1”
Return “100”.
思路:模拟十进制加法,二进制加法满二进一,从低位开始两两相加,设置进位,当有空位时补0,直到都是空位且没有进位时结束。
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){
c+=i>=0?a[i--]-'0':0;
c+=j>=0?b[j--]-'0':0;
s=char(c%2+'0')+s;
c/=2;
}
return s;
}
};