给定两个二进制字符串,返回他们的和(用二进制表示)。
输入为非空字符串且只包含数字 1 和 0。
示例 1:
输入: a = "11", b = "1"
输出: "100"
1 class Solution { 2 public String addBinary(String a, String b) { 3 StringBuilder str = new StringBuilder(); 4 int maxlen = a.length()>b.length()?a.length():b.length(); 5 int carry = 0; 6 for(int i=0;i<maxlen;i++){ 7 int num = 0; 8 int ia=0; 9 int ib=0; 10 if(i<a.length()){ 11 ia=Integer.parseInt(String.valueOf(a.charAt(a.length()-1-i))); 12 } 13 if(i<b.length()){ 14 ib=Integer.parseInt(String.valueOf(b.charAt(b.length()-1-i))); 15 } 16 num=ia^ib^carry; 17 if(ia+ib+carry>=2)carry=1; 18 else carry=0; 19 str.insert(0,num+"".toString()); 20 } 21 if(carry==1){ 22 str.insert(0,"1".toString()); 23 } 24 return str.toString(); 25 } 26 }