您的位置:首页 > 编程语言 > C语言/C++

leetcode #67 in cpp

2016-05-31 02:10 429 查看
Solution:

It is the same as #66. We use 2 instead of 10 as the modulo.

Code:class Solution {
public:
string addBinary(string a, string b) {
int carry = 0;
if(a.length() < b.length()){
string temp = a;
a = b;
b = temp;
}
int alen = a.length();
int blen = b.length();
int i = 0;
while(i<alen){
if(i<blen){
if(a[alen - i - 1] - '0' + b[blen - i - 1]-'0' + carry>=2){
a[alen - i - 1] = (a[alen - i - 1] - '0' + b[blen - i - 1]-'0' + carry) % 2 + '0';
carry = 1;
}
else{
a[alen - i - 1] = (a[alen - i - 1] - '0' + b[blen - i - 1]-'0' + carry) + '0';
carry = 0;
}
}else{
if(a[alen - i - 1] - '0' + carry>=2){
a[alen - i - 1] = (a[alen - i - 1] - '0' + carry) % 2 + '0';
carry = 1;
}else{
a[alen - i - 1] = (a[alen - i - 1] - '0' + carry) + '0';
carry = 0;
break;
}
}
i++;
}
if(carry) a = '1' + a;
return a;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cpp leetcode