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) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int length1=a.size();
int length2=b.size();
if(length2<length1){//keep b is longer
string temp=a;
a=b;
b=temp;
int c=length1;
length1=length2;
length2=c;
}
a.insert(0,length2-length1,'0');
char buffer[]={'0','1'};
int jin,yu;
jin=0;yu=0;
for(int i=length2-1 ; i>=0 ; i--){
yu=((a[i]-'0')+(b[i]-'0')+jin)%2;
jin=((a[i]-'0')+(b[i]-'0')+jin)/2;
b[i]=buffer[yu];
}
if(jin)
b.insert(0,1,'1');
return b;
}
};
本文介绍了一种算法,用于解决两个二进制字符串相加的问题,并提供了一个C++实现的例子。该算法通过从低位到高位逐位相加的方式进行计算,同时处理进位的情况。
1905

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



