Leetcode67---二进制求和

https://leetcode.cn/problems/add-binary/description/

给出的两个二进制,我们可以从最后开始往前运算。

给当前短的一位前面补充0即可。

c 复制代码
class Solution {
    public String addBinary(String a, String b) {
      //给的就是二进制字符串 最后一位开始遍历  如果没有就补充0?
    StringBuilder sb = new StringBuilder();
     int  ca=0;
     //和链表的两数相加类似   i>=0 如果下标小于了0就给当前的补充0即可。
     for(int i=a.length()-1,j=b.length()-1;i>=0||j>=0;i--,j--){
        int sum=ca;
        sum+=i>=0?a.charAt(i)-'0':0;
        sum+=j>=0?b.charAt(j)-'0':0;
        sb.append(sum%2);
        ca=sum/2;
     }
     sb.append(ca==1?ca:"");
     return sb.reverse().toString();
    }
}

通过 i>=0||j>=0 保证最长的运算完成。

通过i>=0,来给短的那一个补充0.

sum+=i>=0?a.charAt(i)-'0':0;

sb.append() sum和2进行取模,因为二进制满2就需要往前进一个。

最后的ca如果是前一位进上来为1,那么还要添加上去。

最后反转即可。

相关推荐
晴子呀4 分钟前
Spring底层原理大致脉络
java·后端·spring
只吹45°风10 分钟前
Java-ArrayList和LinkedList区别
java·arraylist·linkedlist·区别
阿华的代码王国18 分钟前
【JavaEE】多线程编程引入——认识Thread类
java·开发语言·数据结构·mysql·java-ee
黑蛋同志18 分钟前
array和linked list的区别
java
andrew_121924 分钟前
腾讯 IEG 游戏前沿技术 一面复盘
java·redis·sql·面试
寻求出路的程序媛32 分钟前
JVM —— 类加载器的分类,双亲委派机制
java·jvm·面试
这孩子叫逆34 分钟前
35. MyBatis中的缓存失效机制是如何工作的?
java·spring·mybatis
骆晨学长34 分钟前
基于SpringBoot的校园失物招领系统
java·spring boot
汇匠源34 分钟前
零工市场小程序:保障灵活就业
java·小程序·零工市场
计算机编程-吉哥37 分钟前
计算机毕业设计 二手图书交易系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试
java·spring boot·毕业设计·毕业论文·计算机毕业设计选题·计算机毕业设计开题报告·二手图书交易系统