您的位置:首页 > 其它

LintCode408:二进制求和

2017-10-27 20:37 134 查看

题目描述

给定两个二进制字符串,返回他们的和(用二进制表示)。

测试样例

a = 11
b = 1
返回 100


解题思路

同大整数问题类似。

代码如下:

class Solution {
public:
/*
* @param a: a number
* @param b: a number
* @return: the result
*/
string addBinary(string &a, string &b) {
// write your code here
int len1 = a.size() - 1;
int len2 = b.size() - 1;
string result = "";
int m = 0;
int n = 0;
while(len1 >= 0 && len2 >= 0){
m = (a[len1]-'0' + b[len2] - '0' + n) % 2;
n = (a[len1]-'0' + b[len2] - '0' + n) / 2;
result = to_string(m) + result;
len1--;
len2--;
}
while (len1 >= 0){
m = (a[len1]-'0' + n) % 2;
n = (a[len1]-'0' + n) / 2;
result = to_string(m) + result;
len1--;
}
while (len2 >= 0){
m = (b[len2] - '0' + n) % 2;
n = (b[len2] - '0' + n) / 2;
result = to_string(m) + result;
len2--;
}
if (n > 0) result = to_string(n) + result;
return result;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  二进制