67.二进制求和
给你两个二进制字符串,返回它们的和(用二进制表示)。
输入为 非空 字符串且只包含数字 1 和 0。
- 先将短的字符串前面填充0,使得字符串长度一样,便于运算。
class Solution {
public:
string addBinary(string a, string b) {
string res;
int flag=0,tmp=0;
if(a.size() > b.size()) b.insert(0,a.size()-b.size(),'0');
else a.insert(0,b.size()-a.size(),'0');
for(int i = a.size()-1;i >= 0;i--){
tmp = a[i]-'0'+b[i]-'0'+flag;
if(tmp == 0){
res.insert(0,"0");
flag = 0;
}
if(tmp == 1){
res.insert(0,"1");
flag = 0;
}
if(tmp == 2){
res.insert(0,"0");
flag = 1;
}
if(tmp == 3){
res.insert(0,"1");
flag = 1;
}
}
if(flag == 1) res.insert(0,"1");
return res;
}
};
通过时间:

本文介绍了一种处理二进制字符串加法的算法,通过补零使两字符串长度相等,然后逐位进行加法运算,考虑到进位情况,最终返回二进制结果。
1483

被折叠的 条评论
为什么被折叠?



