题目
给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。
示例 1:
输入:a = "11", b = "1" 输出:"100"
示例 2:
输入:a = "1010", b = "1011" 输出:"10101"
解题
方法一:
class Solution { public: string addBinary(string a, string b) { int m=a.size(),n=b.size(); int i=m-1,j=n-1; int add=0; int x,y=0; string res; while(i>=0||j>=0||add==1){ x=i>=0?a[i]-'0':0; y=j>=0?b[j]-'0':0; int t=x+y+add; res+=t%2+'0'; add=t/2; i--,j--; } reverse(res.begin(),res.end()); return res; } };