本文共 744 字,大约阅读时间需要 2 分钟。
给你两个二进制字符串,返回它们的和(用二进制表示)。
输入为 非空 字符串且只包含数字 1
和 0
。
做本题之前先看看我的 39_字符串相加,这里
另外这几道题是同样的套路和模板,这道题就不写题解了:
38_数组形式的整数加法
37_两数相加
20_二进制求和
39_字符串相加
class Solution { public String addBinary(String a, String b) { StringBuilder res = new StringBuilder(); int carry = 0; int l1 = a.length() - 1; int l2 = b.length() - 1; while (l1 >= 0 || l2 >= 0) { int x = l1 < 0 ? 0 : a.charAt(l1) - '0'; int y = l2 < 0 ? 0 : b.charAt(l2) - '0'; int sum = x + y + carry; res.append(sum % 2); carry = sum / 2; l1--; l2--; } if (carry != 0) res.append(carry); return res.reverse().toString(); }}
转载地址:http://dlgki.baihongyu.com/