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,那么还要添加上去。

最后反转即可。

相关推荐
oak隔壁找我3 分钟前
公司级 Maven Parent POM 设计指南
java·后端
软行15 分钟前
LeetCode 每日一题 166. 分数到小数
数据结构·c++·算法·leetcode·哈希算法
zl97989916 分钟前
SpringBoot-Web开发之内容协商
java·spring boot
阿昭L16 分钟前
leetcode合并有序链表
leetcode·链表
bb456b17 分钟前
Snipaste (截图贴图工具) 精准截图 中文免费版
java·工具·贴图
Tisfy27 分钟前
LeetCode 3461.判断操作后字符串中的数字是否相等 I:简单题简单做的时候到了
leetcode·题解·模拟·1024程序员节
nju_spy31 分钟前
力扣每日一题(三)划分题 + 思路题
数学·算法·leetcode·动态规划·笔试·记忆化搜索·状态压缩
SimonKing41 分钟前
【开发者必备】Spring Boot 2.7.x:WebMvcConfigurer配置手册来了(三)!
java·后端·程序员
2301_8012522242 分钟前
前端框架Vue(Vue 的挂载点与 data 数据对象)
java·前端·javascript·vue.js·前端框架
ArabySide43 分钟前
【Spring Boot】深入浅出Spring Boot中的控制反转与依赖注入
java·spring boot·后端