Add Binary
Given two binary strings, return their sum (also a binary string).
For example, a = “11” b = “1”
Return “100”.
题目的意思也是比较简单,两个二进制数组相加,如果两个数组都已经加完还有进位的话,则要在最前面加’1’
class Solution {
public:
string addBinary(string a, string b) {
int m = a.size()-1;
int n = b.size()-1;
if(n>m) return addBinary(b,a);
int carry = 0;
int dig;
while(m>=0){
dig = a[m]-'0'+carry;
if(n>=0){
dig += (b[n]-'0');
--n;
}
a[m]=dig%2+'0';
carry=dig/2;
--m;
}
if(carry)
a.insert(0,1,'1'); //string.insert(pos,n.c);string.insert(pos,string);
return a;
}
};