您的位置:首页 > 其它

LeetCode 67. 二进制求和

2018-04-02 17:09 477 查看

题目描述: 二进制求和

        给定两个二进制字符串,返回他们的和(用二进制表示)。        案例:
        a = 
"11"

        b = 
"1"

        返回 
"100"
 。

解题思路:

        先写个一位加法器,然后依次把b加入a中。

代码:

class Solution {
public:
string addBinary(string a, string b) {
if(a.length() < b.length()) swap(a, b);
for(int i = b.length()-1 ; i >= 0 ; i -- ) {
if(b[i] == '1') f(a, b.length()-i);
}
return a;
}

void f(string& a, int n) {
for(int i = a.length() -n ; i >= 0 ; i --) {
if(a[i] == '0') {
a.replace(i, 1, "1");
return;
}
else {
a.replace(i, 1, "0");
if(i == 0) a.insert(0, "1");
}
}
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: