您的位置:首页 > 其它

Add Binary

2015-07-22 11:57 218 查看
class Solution {

public:

string addBinary(string a, string b) {

int len1=a.size();

int len2=b.size();

int min1=min(len1,len2);

int cf=0;

string s;

reverse(a.begin(),a.end()); // 先逆置

reverse(b.begin(),b.end()); //

for(int i=0;i<min1;i++)

{

if(a[i]=='1'&&b[i]=='1')

{ s=s+char('0'+cf);

cf=1;

}

else if((a[i]=='1'||b[i]=='1')&&cf==1)

{

s=s+'0';

cf=1;

}

else

{

s+=char(a[i]+(b[i]-'0')+cf);

cf=0;

}

}

while(len1>len2)

{

if(a[len2]=='1'&&cf==1)

{s+='0';

cf=1;}

else {

s+=char(a[len2]+cf);

cf=0;}

len2++;

}

while(len1<len2)

{

if(b[len1]=='1'&&cf==1)

{s+='0';

cf=1;}

else {

s+=char(b[len1]+(cf));

cf=0;}

len1++;

}

if(len1==len2&&cf==1)

s+='1';

reverse(s.begin(),s.end());

return s;

}

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: