您的位置:首页 > 其它

leetcode: Add Binary

2014-07-04 20:21 309 查看
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 == "")
return b;
if( b == "")
return a;
string res;
const int N = max( a.size(), b.size());
reverse( a.begin(), a.end());
reverse( b.begin(), b.end());
int carry = 0;
for( int i = 0; i < N; ++i){
int ai = i < a.size() ? a[i] - '0' : 0;
int bi = i < b.size() ? b[i] - '0' : 0;
int val = ( ai + bi + carry) % 2;
carry = ( ai + bi + carry) / 2;
res.insert( res.begin(), val + '0');
}
if( carry == 1)
res.insert( res.begin(), '1');
return res;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: