leetcode 67.二进制求和

原题如下

67.二进制求和
2020年6月23日 每日一题
在这里插入图片描述

题解

方法一

模拟加法运算。
本思路java代码示例:

/*没有进位的时候记得进位归零
 *作者@v7fgg
 *执行用时 :8 ms, 在所有 Java 提交中击败了16.42%的用户
 *内存消耗 :40.1 MB, 在所有 Java 提交中击败了7.69%的用户
 *2020年5月25日 8:19
 */
class Solution {
    public String addBinary(String a, String b) {
        String nLong="";
        String nShort="";
        String ans="";
        if(a.length()<=b.length()){
            nLong=b;
            nShort=a;
        }
        else{
            nLong=a;
            nShort=b;
        }
        int jinwei=0;
        int he=0;
        int chang=nLong.length()-1;
        int duan=nShort.length()-1;
        while(chang>=0){
            if(duan>=0){
                he=jinwei+(nLong.charAt(chang)-'0')+(nShort.charAt(duan)-'0');
            }
            else{
                he=jinwei+(nLong.charAt(chang)-'0');
            }
            if(he>1){
                he-=2;
                jinwei=1;
            }
            else{
                jinwei=0;//没有进位记得归零
            }
            ans=he+ans;
            if(chang==0&&jinwei==1){
                ans=1+ans;
            }
            chang--;
            duan--;
        }return ans;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可爱抱抱呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值