题目:
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
题意及分析:求两个用字符串表示 的二进制数的和。主要是判断每次相加的和是否大于2,大于2便进1取余。
代码:
class Solution {
public String addBinary(String a, String b) {
String temp = "";
int i = a.length()-1,j=b.length()-1;
int count = 0;
while(i>=0&& j>=0){
count = count + (a.charAt(i)-'0') + (b.charAt(j)-'0');
if(count > 1){
temp = ((count)%2) + temp;
count = 1;
}else{
temp = count + temp;
count = 0;
}
i--;
j--;
}
//a长一些
while(i>=0){
count += a.charAt(i)-'0';
if(count > 1){
temp = ((count)%2) + temp;
count = 1;
}else{
temp = count + temp;
count = 0;
}
i--;
}
//b长一些
while(j>=0){
count += b.charAt(j)-'0';
if(count > 1){
temp = ((count)%2) + temp;
count = 1;
}else{
temp = count + temp;
count = 0;
}
j--;
}
if(count == 1)
temp = count + temp;
return temp;
}
}