67. 二进制求和
给定两个二进制字符串,返回他们的和(用二进制表示)。
输入为非空字符串且只包含数字 1
和 0
。
示例 1:
输入: a = "11", b = "1" 输出: "100"
示例 2:
输入: a = "1010", b = "1011" 输出: "10101"
1 public class T67 { 2 public String addBinary(String a, String b) { 3 int carry = 0; 4 int i = a.length() - 1; 5 int j = b.length() - 1; 6 StringBuilder sb = new StringBuilder(); 7 while (carry > 0 || i >=0 || j >= 0) { 8 if (i >= 0 && a.charAt(i) == '1') { 9 carry++; 10 } 11 if (j >= 0 && b.charAt(j) == '1') { 12 carry++; 13 } 14 sb.append(carry % 2); 15 carry /= 2; 16 } 17 return sb.reverse().toString(); 18 } 19 }
给定两个二进制字符串,返回他们的和(用二进制表示)。
输入为非空字符串且只包含数字 1
和 0
。
示例 1:
输入: a = "11", b = "1" 输出: "100"
示例 2:
输入: a = "1010", b = "1011" 输出: "10101"