要求:二进制字符串求和
思路:就我写这么长?
class Solution {
public:
string addBinary(string a, string b) {
if(a.length()<b.length())swap(a,b);
int la=a.length(),lb=b.length();
int enter=0;
string ans=string(la,'0');
int i,j;
for(i=la-1,j=lb-1;i>=0&&j>=0;--i,--j){
int num=a[i]-'0'+b[j]-'0'+enter;
if(num>=2){
enter=1;
num=num%2;
}
else enter=0;
ans[i]=num+'0';
}
if(i>=0){
for(;i>=0;--i){
int num=a[i]-'0'+enter;
if(num>=2){
enter=1;
num=num%2;
}
else enter=0;
ans[i]=num+'0';
}
}
return enter==1?"1"+ans:ans;
}
};
和串可以从0push_back再reverse