LeetCode第67题:二进制求和(简单)
- 题目:给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。
- 思路一:将两个字符串转成整型,相加,再把求得的和转换成二进制。但是有过长的字符串超出了限制。
class Solution {
public String addBinary(String a, String b) {
int aa = Integer.parseInt(a);
int bb = Integer.parseInt(b);
int sum = aa+bb;
String ans = "";
if(sum == 0) return "0";
while(sum>0){
int k=sum%10;
if(k < 2){
sum=sum/10;
ans+=k;
}else{
sum=sum/10+1;
k=k-2;
ans+=k;
}
}
return new StringBuilder(ans).reverse().toString();
}
}
- 思路二:从字符串的最后一位开始进行判断。