Add Binary (Easy)

Description

Given two binary strings, return their sum (also a binary string).
For example,
a = “11”
b = “1”
Return “100”.

Analysis

模拟大数加法

My Solution

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//C++
class Solution {
public:
string addBinary(string a, string b) {
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
string ans="";
int alen = a.length(),blen = b.length();
int len = max(alen,blen);
int x,y,num=0;
for(int i=0;i<len;i++){
if(i>=alen)
x = 0;
else
x = a[i]-'0';
if(i>=blen)
y = 0;
else
y = b[i]-'0';
ans += (x+y+num)%2+'0';
num = (x+y+num)/2;
}
while(num){
ans+=num%2+'0';
num/=2;
}
reverse(ans.begin(),ans.end());
return ans;
}
};