Read Time:1 Minute, 3 Second
Given two binary strings a
and b
, return their sum as a binary string.
Example 1:
Input: a = "11", b = "1" Output: "100"
Example 2:
Input: a = "1010", b = "1011" Output: "10101"
class Solution {
public:
string addBinary(string a, string b) {
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
bool AF=a.length()>=b.length()?true:false;
string bin="";
string carry="0";
int i=0;
int j=0;
char elementA='0';
char elementB='0';
while(true){
if(AF){
if(!(i<a.length())){
break;
}
}else {
if(!(j<b.length())){
break;
}
}
if(i<a.length()){
elementA=a[i];
}else {
elementA='0';
}
if(j<b.length()){
elementB=b[j];
}else {
elementB='0';
}
if(elementB=='1' && elementA=='1'){
if(carry=="1")
bin+="1";
else
bin+="0";
carry="1";
}
else if(elementB=='0' && elementA=='0'){
if(carry=="1")
bin+="1";
else
bin+="0";
carry="0";
}else if(elementB=='1' && elementA=='0'){
if(carry=="1"){
bin+="0";
carry="1";
}else{
bin+="1";
carry="0";
}
}
else if(elementB=='0' && elementA=='1'){
if(carry=="1"){
bin+="0";
carry="1";
}else{
bin+="1";
carry="0";
}
}
i++;j++;
}
if(carry=="1"){
bin+="1";
}
reverse(bin.begin(),bin.end());
return bin;
}
};