题目:https://oj.leetcode.com/problems/add-binary/
题意:两个二进制数加到一起返回一个string
思路:模拟加就行了,注意最后如果加完进位部分还有个1,记得要加到最后的结果里,别忘了
class Solution {
public:
string addBinary(string a, string b) {
int jinwei = 0;
int len1 = a.size() - 1;
int len2 = b.size() - 1;
string result = "";
while(len1 >= 0 && len2 >= 0)
{
int tmp = a[len1] - '0' + (b[len2] - '0') + jinwei;<span style="white-space:pre"> </span>//这种带进位的题这里最好用一个数来暂时存一下结果,要不看着太乱,二次读也容易读不懂
jinwei = tmp/2;
tmp %= 2;
result = (char)(tmp + '0') + result;
len1 --;
len2 --;
}
while(len1 >= 0)
{
int tmp = a[len1] - '0' + jinwei;
jinwei = tmp / 2;
tmp %= 2;
result = (char)(tmp + '0') + result;
len1 --;
}
while(len2 >= 0)
{
int tmp = b[len2] - '0' + jinwei;
jinwei = tmp / 2;
tmp %= 2;
result = (char)(tmp + '0') + result;
len2 --;
}
if (jinwei > 0)
result = (char)(jinwei + '0') + result;
return result;
}
};