题目:
Given two binary strings, return their sum (also a binary string).
For example,
a = “11”
b = “1”
Return “100”.
链接: https://leetcode.com/problems/add-binary/
#include <iostream>
#include <string>
using namespace std;
class Solution {
public:
string addBinary(string a, string b) {
string ab = "";
int ai = a.length() - 1;
int bi = b.length() - 1;
int carry = 0, sum = 0, anum, bnum;
while(ai >= 0 || bi >= 0){
anum = ai >= 0 ? a[ai]-'0':0;
bnum = bi >= 0 ? b[bi]-'0':0;
sum = anum ^ bnum ^ carry;
carry = anum+bnum+carry>1?1:0;
ab = (char)(sum+'0') + ab;
ai --;
bi --;
}
if(carry==1) ab = '1' + ab;
return ab;
}
};
int main(){
Solution s;
string r = s.addBinary("100", "1");
cout << r;
return 0;
}