<span style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">每天一刷,强迫学习</span>
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
这道题乍看很简单,将输入的二进制字符串转换为int(利用parseInt(String s, int radix)
),计算结果后结果用Integer.toBinaryString(int)转换为二进制字符串即可。提交时测试用例不通过,原因是Integer只能表示32位的数字,此时查找Java有BigInteger类。
总结:
1、注意输入输出边界;
2、java中BigInteger类可以表示大整数。其中构造函数支持多种进制的字符串。
import java.math.BigInteger;
public class Solution {
public String addBinary(String a, String b) {
BigInteger aValue = new BigInteger(a, 2);
BigInteger bValue = new BigInteger(b, 2);
BigInteger sum = new BigInteger("0", 2);
sum = aValue.add(bValue);
return sum.toString(2);
}
}