67. Add Binary
problem description
Input: a = "11", b = "1"
Output: "100"Input: a = "1010", b = "1011"
Output: "10101"algorithm thought
code
class Solution {
public:
string addBinary(string a, string b) {
int al=a.size(),bl=b.size();
string res=string(max(al,bl)+1,'0');
if(al<bl){
a=string(bl-al,'0')+a;
}
else
b=string(al-bl,'0')+b;
int c=0;
//cout<<a<<b;
int count;
for(int i=res.size()-2;i>=0;i--){
count=int(a[i]-'0')+int(b[i]-'0')+c;
if(count==1||count==3){
res[i+1]='1';
}
if(count>=2){
c=1;
}
else
c=0;
//cout<<' '<<count;
}
res[0]=char(c+'0');
count=0;
while(res[count]=='0'){
count++;
}
res=res.substr(count);
return (res.size()==0?"0":res);
}
};algorithm analysis
Last updated