Given two binary strings, return their sum (also a binary string).
For example,
a =”11”
b =”1”
Return”100”.
模拟即可
class Solution {
public:
string addBinary(string a, string b) {
string res;
char pos='0';
int lena=a.size()-1;
int lenb=b.size()-1;
while(lena>=0&&lenb>=0)
{
if(a[lena]-'0'+b[lenb]-'0'+pos-'0'>=2)
{
res+=a[lena]-'0'+b[lenb]-'0'+pos-'0'-2+'0';
pos='1';
}
else if(a[lena]-'0'+b[lenb]-'0'+pos-'0'==1)
{
res+='1';
pos='0';
}
else
{
res+='0';
pos='0';
}
--lena;
--lenb;
}
while(lena>=0)
{
if(a[lena]-'0'+pos-'0'==2)
{
res+='0';
pos='1';
}
else if(a[lena]-'0'+pos-'0'==1)
{
res+='1';
pos='0';
}
else
{
res+='0';
pos='0';
}
--lena;
}
while(lenb>=0)
{
if(b[lenb]-'0'+pos-'0'==2)
{
res+='0';
pos='1';
}
else if(b[lenb]-'0'+pos-'0'==1)
{
res+='1';
pos='0';
}
else
{
res+='0';
pos='0';
}
--lenb;
}
if(pos=='1')
res+=pos;
reverse(res.begin(),res.end());
return res;
}
};