给定两个二进制字符串,返回他们的和(用二进制表示)。
输入为非空字符串且只包含数字 1 和 0。
输入: a = “11”, b = “1”
输出: “100”
输入: a = “1010”, b = “1011”
输出: “10101”
我的c++代码
class Solution {
public:
string addBinary(string a, string b) {
int a_length=a.length()-1;
int b_length=b.length()-1;
string result;
int t=0;
while(a_length>=0||b_length>=0||t!=0){
if(a_length>=0){
t=t+(a[a_length]-'0');
a_length--;
}
if(b_length>=0){
t=t+(b[b_length]-'0');
b_length--;
}
if(t==0){
result.insert(0,"0");
}
else if(t==1){
result.insert(0,"1");
t=0;
}
else if(t==2){
result.insert(0,"0");
t=1;
}
else{
result.insert(0,"1");
t=1;
}
}
return result;
}
};
提交结果惊了