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 ret = "";
int i = a.length() - 1;
int j = b.length() - 1;
int curSum = 0;
//从右往左(低位往高位)逐位相加。
while(i >= 0 || j>=0 || curSum == 1)
{
//如果当前的索引大于等于零,则将当前为的数字加上,否则加上0
curSum += i>=0?a[i--]-'0':0;
curSum += j>=0?b[j--]-'0':0;
//将当前为的结果mod2之后加入结果字符串中
ret = (char)(curSum %2 + '0') +ret;
//进位
curSum /=2;
}
return ret;
}
};
1