您的位置:首页 > 其它

Add Binary

2014-09-09 15:09 381 查看

Add Binary

Given two binary strings, return their sum (also a binary string).

For example,

a =
"11"


b =
"1"


Return
"100"
.

题目:字符串二进制加法
分析:两个指针从后往前扫描,记录是否有进位,注意结束后判断进位是否为1.

代码:

class Solution {
public:
string addBinary(string a, string b) {
string res;
if(a.size()<1) return b;
if(b.size()<1) return a;
int i=a.size()-1, j=b.size()-1;
int taken=0;
int t=0;

while(true){
if(i>=0 && j>=0){
t=(taken + a[i]-'0'+b[j]-'0');
if(t>=2) taken=1;
else taken=0;
t=t%2;
res.push_back(t+'0');
i--;j--;
}else if(i>=0){
t= taken + a[i]-'0';
if(t>=2) taken=1;//更新进位
else taken=0;
t=t%2;
res.push_back(t+'0');
i--;
}else if(j>=0){
t= taken + b[j]-'0';
if(t>=2) taken=1;
else taken=0;
t=t%2;
res.push_back(t+'0');
j--;
}else{
break;
}
}
if(taken!=0){//最后是否有进位
res.push_back('1');
}
reverse(res.begin(), res.end());
return res;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  add binary