资讯专栏INFORMATION COLUMN

[Leetcode] Add Binary 二进制相加

lk20150415 / 2711人阅读

摘要:模拟加法复杂度时间空间思路模拟加法的运算法则,从最低位加到最高位。记得使用来减少字符串操作的开销。代码后续如果不是二进制相加,而是十六进制相加呢只要把算法中的除和余换成,并添加相应的十六进制字母就行了。

Add Binary

Given two binary strings, return their sum (also a binary string).

For example, a = "11" b = "1" Return "100".

模拟加法 复杂度

时间 O(N) 空间 O(1)

思路

模拟加法的运算法则,从最低位加到最高位。记得使用StringBuilder来减少字符串操作的开销。

代码
public class Solution {
    public String addBinary(String a, String b) {
        int i = a.length() - 1, j = b.length() - 1, carry = 0;
        StringBuilder sb = new StringBuilder();
        while(i >=0 || j >=0){
            int m = i >= 0 ? a.charAt(i) - "0" : 0;
            int n = j >= 0 ? b.charAt(j) - "0" : 0;
            int sum = m + n + carry;
            carry = sum / 2;
            sb.insert(0, String.valueOf(sum % 2));
            i--;
            j--;
        }
        if(carry != 0) sb.insert(0, "1");
        return sb.toString();
    }
}
后续 Follow Up

如果不是二进制相加,而是十六进制相加呢?只要把算法中的除2和余2换成16,并添加相应的十六进制字母就行了。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/64474.html

相关文章

  • Leetcode 67:Add Binary(进制求和)

    摘要:给定两个二进制字符串,返回他们的和用二进制表示。返回的数值是以开头,表明返回的数值是二进制函数用于将一个字符串或数字转换为整型。指定为非十进制时,需以字符串形式传入从第三个元素开始截取,忽略 (python、java)Given two binary strings, return their sum (also a binary string).The input strings a...

    chenjiang3 评论0 收藏0
  • Leetcode 67:Add Binary(进制求和)

    摘要:给定两个二进制字符串,返回他们的和用二进制表示。返回的数值是以开头,表明返回的数值是二进制函数用于将一个字符串或数字转换为整型。指定为非十进制时,需以字符串形式传入从第三个元素开始截取,忽略 (python、java)Given two binary strings, return their sum (also a binary string).The input strings a...

    sf190404 评论0 收藏0
  • leetcode67 binary add 进制加法计算

    摘要:题目要求将两个二进制字符串相加结果以二进制字符串的形式返回要格外注意可能会在最高位存在进位想要了解更多开发技术,面试教程以及互联网公司内推,欢迎关注我的微信公众号将会不定期的发放福利哦 题目要求:将两个二进制字符串相加结果以二进制字符串的形式返回要格外注意可能会在最高位存在进位 /** * @author rale * * Given two binary strings, r...

    DevTTL 评论0 收藏0
  • LeetCode 攻略 - 2019 年 7 月下半月汇总(100 题攻略)

    摘要:月下半旬攻略道题,目前已攻略题。目前简单难度攻略已经到题,所以后面会调整自己,在刷算法与数据结构的同时,攻略中等难度的题目。 Create by jsliang on 2019-07-30 16:15:37 Recently revised in 2019-07-30 17:04:20 7 月下半旬攻略 45 道题,目前已攻略 100 题。 一 目录 不折腾的前端,和咸鱼有什么区别...

    tain335 评论0 收藏0
  • 前端 | 每天一个 LeetCode

    摘要:在线网站地址我的微信公众号完整题目列表从年月日起,每天更新一题,顺序从易到难,目前已更新个题。这是项目地址欢迎一起交流学习。 这篇文章记录我练习的 LeetCode 题目,语言 JavaScript。 在线网站:https://cattle.w3fun.com GitHub 地址:https://github.com/swpuLeo/ca...我的微信公众号: showImg(htt...

    张汉庆 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<