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;
}
};
相关文章推荐
- LeetCode : Add Binary
- Add Binary
- leetcode:Add Binary
- LeetCode题解:Add Binary
- LeetCode(65)Add Binary
- 【Leetcode】Add Binary
- Add Binary
- 【LeetCode】Add Binary
- Add Binary
- LeetCode刷题笔录Add Binary
- leetcode - Add Binary
- [LeetCode] Add Binary 二进制数相加
- [LeetCode] Add Binary 加法
- 第30题 Add Binary
- [Leetcode]Add Binary
- Leetcode: Add Binary
- Add Binary -- leetcode
- Add Binary - LeetCode 67
- [LeetCode][JavaScript]Add Binary
- Add Binary