LeetCode:二进制求和
二进制求和
要求
- 给你两个二进制字符串,返回它们的和(用二进制表示)。
- 输入为 非空 字符串且只包含数字 1 和 0。
思路
从数组后面开始依次相加,长度不够的数组补零继续相加,将加出来的数据对2进行求余转换填充至输出数组,数据除以2判断是否要进位,
class Solution {
public:
string addBinary(string a, string b) {
string out;
bool carry_flag=false;
int m=a.size()-1;
int n=b.size()-1;
int a_value=0;
int b_value=0;
int sum=0;
while(m>=0||n>=0){
a_value= m>=0?a[m--]-'0':0;
b_value= n>=0?b[n--]-'0':0;
sum=a_value+b_value+carry_flag;
out.insert(out.begin(),(sum%2)+'0');
carry_flag=sum/2;
}
return carry_flag == 1 ? "1" + out : out;
}
};
持之以恒的学习,方是进步的唯一途径!