题目:
Given two binary strings, return their sum (also a binary string).
For example,
a = “11”
b = “1”
Return “100”.
题意:
给定两个二进制的字符串,返回它们的和。
思路:
这道题目就是完成简单的二进制的加法。代码如下:
class Solution {
public:
string addBinary(string a, string b) {
if(a.empty() || b.empty())return (a.empty()?b:a);
if(a.length() < b.length())swap(a, b);
b = string(a.length() - b.length(), '0') + b;//补位让b德长度与a一样。
int carry = 0;
string result(a.length(), ' ');
for(int i = a.length() - 1; i >= 0; i--) {
int sum = a[i] - '0' + b[i] - '0' + carry;
carry = sum/2;
sum = sum%2;
result[i] = sum + '0';
}
if(carry == 1)result = "1"+result;
return result;
}
};