0 0
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;
    }
};
Happy
Happy
0 %
Sad
Sad
0 %
Excited
Excited
0 %
Sleepy
Sleepy
0 %
Angry
Angry
0 %
Surprise
Surprise
0 %

About Author

Average Rating

5 Star
0%
4 Star
0%
3 Star
0%
2 Star
0%
1 Star
0%

Leave a Reply

Your email address will not be published. Required fields are marked *