您的位置:首页 > 其它

[leetcode]Add Binary

2013-07-24 22:57 316 查看
class Solution {
public:
char add(char a, char b, char c, char &carry){
int result = a - '0' + b -'0' + c-'0';
if(result == 0){
carry = '0';
return '0';
}else if(result == 1){
carry = '0';
return '1';
}else if(result == 2){
carry = '1';
return '0';
}else{
carry = '1';
return '1';
}

}

string addBinary(string a, string b) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
if(a.empty() || b.empty()) return "";

if(b.size() > a.size()) swap(a,b);

int p = a.size()-1;
int q = b.size()-1;

string c = a;
char carry = '0';
char nc;

while(q >= 0){
c[p] = add(a[p], b[q], carry, nc);
carry = nc;
p--;
q--;
}

while(p >= 0){
c[p] = add(a[p], '0', carry, nc);
carry = nc;
p--;
}

if(carry == '1'){
c.insert(c.begin(), '1');
}
return c;

}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: