# Leetcode 67. Add Binary
###### tags: `Leetcode(C++)`
題目 : https://leetcode.com/problems/add-binary/ 。
想法 :
實作加法。
時間複雜度 : O(n)。
程式碼 :
```
class Solution {
public:
string addBinary(string a, string b) {
int l1=a.size()-1, l2=b.size()-1, bring=0;
string ans;
while(l1 >= 0 || l2 >= 0){
char n1=(l1 >= 0 ? a[l1] : '0'), n2=(l2 >= 0 ? b[l2] : '0');
//cout << a[l1] << " " << b[l2] << " " << bring << endl;
if(n1 == '0' && n2 == '0'){
if(bring == 1){
ans.insert(0,"1"); bring=0;
}
else{
ans.insert(0,"0");
}
l1--; l2--;
}
if(n1 == '0' && n2 == '1'){
if(bring == 1){
ans.insert(0,"0"); bring=1;
}
else{
ans.insert(0,"1");
}
l1--; l2--;
}
if(n1 == '1' && n2 == '0'){
if(bring == 1){
ans.insert(0,"0"); bring=1;
}
else{
ans.insert(0,"1");
}
l1--; l2--;
}
if(n1 == '1' && n2 == '1'){
if(bring == 0){
ans.insert(0,"0"); bring=1;
}
else{
ans.insert(0,"1"); bring=1;
}
l1--; l2--;
}
}
if(bring == 1){
ans.insert(0,"1");
}
return ans;
}
};
```