您的位置:首页 > 其它

Leetcode:Add Binary 二进制相加

2014-04-28 16:02 316 查看
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) {
size_t len_a = a.length();
size_t len_b = b.length();
if(len_a == 0)
return b;
if(len_b == 0)
return a;
int i = len_a - 1;
int j = len_b - 1;
int increase = 0;
stack<int> result_stk;
while(i >= 0 && j >= 0)
{
int s = a[i] - '0' + b[j] - '0' + increase;
increase = s / 2;
int sum = s % 2;
result_stk.push(sum);
i--;
j--;
}
while(i >= 0)
{
int s = a[i] - '0' + increase;
increase = s / 2;
int sum = s % 2;
result_stk.push(sum);
i--;
}
while(j >= 0)
{
int s = b[j] - '0' + increase;
increase = s / 2;
int sum = s % 2;
result_stk.push(sum);
j--;
}
if(increase == 1)
result_stk.push(1);

string result;
while(!result_stk.empty())
{
result += result_stk.top() + '0';
result_stk.pop();
}
return result;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: