首页 > 其他 > 详细

二进制求和

时间:2020-06-23 10:12:56      阅读:66      评论:0      收藏:0      [点我收藏+]

二进制求和

思路好想:

模拟

位运算


所以我们的目的是我们尽量的简化代码。

我采用的方法是模拟。



代码如下:

class Solution {
    public String addBinary(String a, String b) {
        StringBuffer sb = new StringBuffer();
        return helper(a,b,sb,0);
    }
    public String helper(String a,String b,StringBuffer sb,int ad){
        int len1 = a.length();
        int len2 = b.length();
        if(len1==0&&len2==0){
            if(ad!=0){
                sb.insert(0,ad+"");
            }
            return sb.toString();
        }
        int a1 = len1==0?0:a.charAt(len1-1)-‘0‘;
        int a2 = len2==0?0:b.charAt(len2-1)-‘0‘;
        a = a.length()==0?a:a.substring(0,len1-1);
        b = b.length()==0?b:b.substring(0,len2-1);
        int advance = 0;
        if(a1+a2+ad==3){
            sb.insert(0,‘1‘);
            advance = 1;
        }else if(a1+a2+ad == 2){
            sb.insert(0,‘0‘);
            advance = 1;
        }else if(a1+a2+ad==1||a1+a2+ad==0){
            sb.insert(0,(a1+a2+ad)+"");
        }
        return helper(a,b,sb,advance);
    }
}

二进制求和

原文:https://www.cnblogs.com/deusjin/p/13180316.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!