67. Add Binary

Given two binary strings, return their sum (also a binary string).

For example,
a ="11"
b ="1"
Return"100".

思路:

1.将两个字符串按数组相加得到新数组。

2.将新数组转换成结果。

代码如下:

classSolution{public:stringaddBinary(stringa,stringb){intsizeA=a.size();intsizeB=b.size();intcarry=0;vector<int>result;stringresultStr;if(sizeA<sizeB)returnaddBinary(b,a);for(inti=0;i<sizeB;i++){intcur=(a[sizeA-i-1]-'0')+(b[sizeB-i-1]-'0')+carry;if(cur<2){result.push_back(cur);carry=0;}elseif(cur==2){result.push_back(0);carry=1;}elseif(cur==3){result.push_back(1);carry=1;}}for(intj=sizeB;j<sizeA;j++){intcur=(a[sizeA-j-1]-'0')+carry;if(cur<2){result.push_back((a[sizeA-j-1]-'0')+carry);carry=0;}elseif(cur==2){result.push_back(0);carry=1;}elseif(cur==3){result.push_back(1);carry=1;}}if(carry==2){result.push_back(0);result.push_back(1);}elseif(carry==1){result.push_back(1);}for(intk=0;k<result.size();k++){if(result[result.size()-1-k]==1){resultStr.append(1,'1');}else{resultStr.append(1,'0');}}returnresultStr;}};

2016-08-10 23:39:26