leetcode 67. 二进制求和

给定两个二进制字符串,返回他们的和(用二进制表示)。

输入为非空字符串且只包含数字 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 }

 

posted on 2019-11-29 16:45  forever_time  阅读(124)  评论(0编辑  收藏  举报