原题:
Given two binary strings, return their sum (also a binary string).
The input strings are both non-empty and contains only characters
1
or0
.Example 1:
Input: a = "11", b = "1" Output: "100"Example 2:
Input: a = "1010", b = "1011" Output: "10101"
二进制加法器,很简单,结果如下:
Success
Runtime: 0 ms, faster than 100.00% of C++ online submissions for Add Binary.
Memory Usage: 8.5 MB, less than 77.71% of C++ online submissions for Add Binary.
代码:
class Solution {
public:
string addBinary(string a, string b) {
int sizea=a.size()-1;
int sizeb=b.size()-1;
int sum=0;
int sp=0;
string s="";
while(sizea>=0||sizeb>=0){
if (sizea>=0&&a[sizea--]=='1'){sum++;}
if (sizeb>=0&&b[sizeb--]=='1'){sum++;}
sum+=sp;
if(sum==0){s+="0";sp=0;sum=0;continue;}
else if(sum==1){s+="1";sp=0;sum=0;continue;}
else if(sum==2){s+="0";sp=1;sum=0;continue;}
else if(sum==3){s+="1";sp=1;sum=0;continue;}
}
if(sp==1){s+="1";}
reverse(s.begin(),s.end());
return s;
}
};