【题目描述】
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) {
int lena=a.length();
int lenb=b.length();
int len=abs(lena-lenb);
string tmp(len,'0');
string c;
if(lena>lenb){
b=tmp+b;
c.resize(lena);
}
else{
a=tmp+a;
c.resize(lenb);
}
int flag=0;
for(int i=c.length()-1;i>=0;i--){
if(a[i]=='0'&&b[i]=='0'){
if(flag==0) c[i]='0';
else c[i]='1';
flag=0;
}
else if(a[i]=='1'&&b[i]=='1'){
if(flag==0) c[i]='0';
else c[i]='1';
flag=1;
}
else{
if(flag==0){
c[i]='1';
flag=0;
}
else{
c[i]='0';
flag=1;
}
}
}
if(flag==1) c='1'+c;
return c;
}
};
842

被折叠的 条评论
为什么被折叠?



