Lintcode: Add Binary

简介:

C++

复制代码
 1 class Solution {
 2 public:
 3     /**
 4      * @param a a number
 5      * @param b a number
 6      * @return the result
 7      */
 8     string addBinary(string& a, string& b) {
 9         // Write your code here
10         if (a == "0") {
11             return b;
12         }
13         if (b == "0") {
14             return a;
15         }
16         string result;
17         int carry = 0;
18         int ai, bj, sum;
19         char val;
20         for (int i = a.size()-1, j = b.size()-1; i >= 0 || j >= 0; i--, j--) {
21             ai = i >= 0?a[i]-'0':0;
22             bj = j >= 0?b[j]-'0':0;
23             sum = ai+bj+carry;
24             val = sum%2?'1':'0';
25             carry = sum/2;
26             result.insert(result.begin(), val);
27         }
28         if (carry == 1) {
29             result.insert(result.begin(), '1');
30         }
31         return result;
32     }
33 };
复制代码

 


本文转自ZH奶酪博客园博客,原文链接:http://www.cnblogs.com/CheeseZH/p/4998768.html,如需转载请自行联系原作者

相关文章
|
人工智能 BI
UVa1554 - Binary Search
UVa1554 - Binary Search
49 0
LeetCode 67. Add Binary
给定两个二进制字符串,返回它们的总和(也是二进制字符串)。 输入字符串都是非空的,只包含字符1或0。
76 0
LeetCode 67. Add Binary
LeetCode 415. Add Strings
给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
96 0
LeetCode 415. Add Strings
LeetCode 258. Add Digits
给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。
70 0
LeetCode 258. Add Digits
LeetCode之Add Digits
LeetCode之Add Digits
104 0