一.问题描述
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
二.我的解题思路
这道题也比较容易,直接按照规则计算即可。测试通过的程序如下:
class Solution {
public:
string addBinary(string a, string b) {
string ans; string tmp;
int len_a = a.length(); int len_b = b.length();
int len = len_a<len_b?len_a:len_b;
int long_len = len_a>len_b?len_a:len_b;
int i=1;int flag=0;
if(a.length()==0) return b;
if(b.length()==0) return a;
while(i<=len){
int plus_a = a[len_a-i]-'0';
int plus_b = b[len_b-i]-'0';
int res = plus_a + plus_b + flag;
if(res>1) flag=1;
else flag=0;
res = res % 2;
char curr = '0'+res;
ans=curr +ans;
i++;
}
if(len_a>len_b) tmp=a;
else tmp=b;
long_len = tmp.length();
while(i<=tmp.length()){
int plus_a = tmp[long_len-i]-'0';
int res = plus_a + flag;
if(res>1) flag=1;
else flag=0;
res = res % 2;
char curr = '0'+res;
ans=curr +ans;
i++;
}
if(flag==1)
ans='1'+ans;
return ans;
}
};