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; } };
相关文章推荐
- 《编程之美 》2.1 位运算实现—交换两个整数、求和、整数的二进制表达中1的个数
- Lintcode 408 二进制求和
- 算法学习(Java实现之字符串篇)····二进制求和
- 2013暑假江西联合训练赛(赛后) 二进制求和 (树状数组,这里需要变形下)
- LeetCode 67. 二进制求和
- (LeetCode)Add Binary --- 二进制求和
- 题目:二进制求和
- LIntCode-二进制求和
- 二进制求和
- 微软一面:输入两个数,相加求和,二进制输出
- 源码,反码,补码,二进制 反码求和
- LintCode【容易】二进制求和
- lintcode 二进制求和 给定两个二进制字符串,返回他们的和(用二进制表示)。
- lintcode-408-二进制求和
- LintCode算法题解——奇偶分割数组、二进制中1个数、反转整数、加一、排序数组转换为高度最小的二叉搜索树、二进制求和
- lintcode 容易题:Add Binary 二进制求和
- 二进制求和-LintCode
- 二进制求和
- 【LintCode-408】二进制求和(Java实现)
- lintCode(408)——二进制求和