【LeetCode】67. 二进制求和

67. 二进制求和

难度:简单

题目

给你两个二进制字符串 ab ,以二进制字符串的形式返回它们的和。

示例 1:

复制代码
输入:a = "11", b = "1"
输出:"100"

示例 2:

复制代码
输入:a = "1010", b = "1011"
输出:"10101"

提示:

  • 1 <= a.length, b.length <= 10^4
  • ab 仅由字符 '0''1' 组成
  • 字符串如果不是 "0" ,就不含前导零

个人题解

思路:

  1. 从后往前遍历字符逐个判断即可
  2. 最后考虑是否进位
  3. sum & 1 等价于 sum % 2
java 复制代码
class Solution {
    public String addBinary(String a, String b) {
        StringBuilder ans = new StringBuilder();
        int ca = 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;
            ca = sum / 2;
            ans.append(sum & 1);
        }
        if (ca == 1) {
            ans.append(1);
        }
        return ans.reverse().toString();
    }
}
相关推荐
学嵌入式的小杨同学几秒前
C 语言实战:动态规划求解最长公共子串(连续),附完整实现与优化
数据结构·c++·算法·unity·游戏引擎·代理模式
rgeshfgreh3 分钟前
顺序表实战:构建到销毁全解析
算法
十八岁讨厌编程5 分钟前
【算法训练营Day32】图论专题
算法·深度优先·图论
小欣加油11 分钟前
leetcode 174 地下城游戏
c++·算法·leetcode·职场和发展·动态规划
sali-tec22 分钟前
C# 基于OpenCv的视觉工作流-章11-高斯滤波
图像处理·人工智能·opencv·算法·计算机视觉
不知名XL35 分钟前
day23 贪心算法 part01
算法·贪心算法
wuqingshun3141591 小时前
蓝桥杯 缺页异常2【算法赛】
算法·职场和发展·蓝桥杯
Mh_ithrha1 小时前
题目:小鱼比可爱(java)
java·开发语言·算法
l1t1 小时前
数独优化求解C库tdoku-lib的使用
c语言·开发语言·python·算法·数独
有一个好名字1 小时前
力扣-奇偶链表
算法·leetcode·链表