【算法题】67. 二进制求和

题目

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

示例 1:

输入:a = "11", b = "1"
输出:"100"
示例 2:

输入:a = "1010", b = "1011"
输出:"10101"

提示:

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

题解

class Solution {
    public String addBinary(String a, String b) {
        StringBuffer ans = new StringBuffer();

        int n = Math.max(a.length(), b.length()), carry = 0;
        for(int i = 0; i < n; ++i){
            carry += i < a.length() ? (a.charAt(a.length() - 1 - i) - '0') : 0;
            carry += i < b.length() ? (b.charAt(b.length() - 1 - i) - '0') : 0;
            ans.append((char)(carry % 2 + '0'));
            carry /= 2;
        }
        if(carry > 0){
            ans.append('1');
        }
        ans.reverse();
        return ans.toString();
    }
}

相关推荐

  1. 算法67. 二进制求和

    2024-01-28 01:30:01       54 阅读
  2. 二进制求和算法(leetcode第67)

    2024-01-28 01:30:01       58 阅读
  3. 【C】67 二进制求和

    2024-01-28 01:30:01       40 阅读
  4. leetcode67二进制求和

    2024-01-28 01:30:01       30 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-28 01:30:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-28 01:30:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-28 01:30:01       82 阅读
  4. Python语言-面向对象

    2024-01-28 01:30:01       91 阅读

热门阅读

  1. Unity UIBasePanel 简单的ui基类

    2024-01-28 01:30:01       57 阅读
  2. uniapp - editor 富文本的使用

    2024-01-28 01:30:01       50 阅读
  3. c#反射用法

    2024-01-28 01:30:01       55 阅读
  4. Compose | UI组件(一) | Modifier修饰符

    2024-01-28 01:30:01       64 阅读
  5. python脚本加密

    2024-01-28 01:30:01       48 阅读
  6. 二分查找的不同实现方法和总结

    2024-01-28 01:30:01       55 阅读
  7. Chrome 浏览器插件 runtime 字段解析

    2024-01-28 01:30:01       50 阅读
  8. C语言运算符

    2024-01-28 01:30:01       55 阅读
  9. 二维数组中的查找

    2024-01-28 01:30:01       58 阅读
  10. 找出字符串中第一个匹配项的下标

    2024-01-28 01:30:01       59 阅读