1.题目描述
题目原链接:add-binary
2.解题思路及算法
- 首先让两个字符串等长(补‘0’)
- 从末位相加,满2则模2进1
- 第一位单独相加,进位则添‘1’
class Solution {
public:
string addBinary(string a, string b) {
while(b.length() > a.length())
a = '0' + a;
while(a.length() > b.length())
b = '0' + b;
for(int i = a.length()-1;i > 0;i--){
a[i] = a[i] - '0' + b[i];
if(a[i] >= '2'){
a[i] = (a[i] - '0') % 2 + '0';
a[i-1] = a[i-1] + 1;
}
}
a[0] = a[0] - '0' + b[0];
if(a[0] >= '2'){
a[0] = (a[0] - '0') % 2 + '0';
a = '1' + a;
}
return a;
}
};