题意思路虽简单,大家应该也都能写上一写 可常规暴力写法就是不能通过
看看官方给出 学一学
方法一:
class Solution {
public String addBinary(String a, String b) {
return Integer.toBinaryString(
Integer.parseInt(a, 2) + Integer.parseInt(b, 2)
);
}
}
Integer.parseInt(a, 2)是将字符串转换为二进制
Integer.toBinaryString以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式
但是只适合java和python自带很多库方法的工具
方法二:
class Solution {
public String addBinary(String a, String b) {
StringBuffer ans = new StringBuffer();
int n = Math.max(a.length(), b.length()), carry = 0;
for (int i = 0; i < n; ++i) {
carry += i < a.length() ? (a.charAt(a.length() - 1 - i) - '0') : 0;//往后读取
carry += i < b.length() ? (b.charAt(b.length() - 1 - i) - '0') : 0;
ans.append((char) (carry % 2 + '0'));//只有2的时候为0 其他时候为1 整数+字符==Ascall码 再转化为字符。
carry /= 2;//保留进位数
}
if (carry > 0) {
ans.append('1');
}
ans.reverse();
return ans.toString();
}
}
(int+字符类型)返回的是Ascall码
只有2的时候为0 其他时候为1 整数+字符==Ascall码 再转化为字符。