leetcode 67. 二进制求和

一、题目

在这里插入图片描述
在这里插入图片描述

二、解答

1.思路

1.1 思路1

转成2个二进制数字相加,之后再转回字符串

1.2 思路2

遍历字符串挨个相加:

  1. 补齐2个字符串到同样长度
    1. while循环,如果指针>0不断循环
    2. 如果a短,给字符串前插入(a长度-b长度)的绝对值个0。如果b短,同理
    3. 指针减一
  2. 倒叙遍历字符串,依次累加;创建变量保存进位值;
    1. 如果需要进位:保存(a字符串此位置的值+b字符串此位置的值+进位值-2)的值到结果字符串;将进位变量赋值为1
    2. 如果不需要进位:保存(a字符串此位置的值+b字符串此位置的值+进位值)的值到结果字符串;将进位变量赋值为0
    3. 如果循环结束,还需要进位,再追加1到结果字符串前。

2.实现

2.1 实现1

class Solution(object):
    def addBinary(self, a, b):
        """
        :type a: str
        :type b: str
        :rtype: str
        """
        # 思路1 转成二进制数字相加后再转回字符串
        return bin(int(a, base=2) + int(b, base=2))[2:]

2.2 实现2

class Solution(object):
    def addBinary(self, a, b):
        """
        :type a: str
        :type b: str
        :rtype: str
        """
        # 思路2 逐位相加
        # 1补齐2个字符串
        max_len = max(len(a), len(b))
        subtract = abs(len(a) - len(b))
        while subtract > 0:
            if len(a) != max_len:
                a = '0' + a
            elif len(b) != max_len:
                b = '0' + b
            subtract = subtract - 1
        #  进位
        plus = 0
        r = ''
        for i in list(range(max_len - 1, -1, -1)):
            # 需要进位
            if int(a[i]) + int(b[i]) + plus >= 2:
                r =  (str(int(a[i]) + int(b[i]) + plus - 2)) + r
                plus = 1
            # 不需要进位
            else:
                r = (str(int(a[i]) + int(b[i]) + plus)) + r
                plus = 0
        if plus == 1:
            r = '1' + r
        return r

3.提交

3.1 提交1

在这里插入图片描述

3.2 提交2

在这里插入图片描述

相关推荐

  1. leetcode67二进制求和

    2024-01-17 11:50:05       7 阅读
  2. leetcode67 二进制求和

    2024-01-17 11:50:05       9 阅读
  3. 二进制求和算法(leetcode67题)

    2024-01-17 11:50:05       38 阅读
  4. 【技巧】Leetcode 67. 二进制求和【简单】

    2024-01-17 11:50:05       7 阅读
  5. 【C】67 二进制求和

    2024-01-17 11:50:05       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-17 11:50:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-17 11:50:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-17 11:50:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-17 11:50:05       18 阅读

热门阅读

  1. JWT详解

    2024-01-17 11:50:05       31 阅读
  2. nginx配置中关于try_file的一些问题

    2024-01-17 11:50:05       29 阅读
  3. python-pip命令学习-改为国内镜像源

    2024-01-17 11:50:05       31 阅读
  4. Hive架构设计

    2024-01-17 11:50:05       32 阅读
  5. Hive调优一文打尽

    2024-01-17 11:50:05       29 阅读
  6. Hive条件函数详细讲解

    2024-01-17 11:50:05       30 阅读
  7. Hive日期函数详细讲解

    2024-01-17 11:50:05       25 阅读
  8. hive除数取整

    2024-01-17 11:50:05       32 阅读
  9. 日常美食DIY教程之三,鱼香杏鲍菇的食材与做法

    2024-01-17 11:50:05       27 阅读
  10. RabbitMQ如何保证消息不丢失?

    2024-01-17 11:50:05       32 阅读
  11. 2023科技风暴:AI璀璨之旅与算法备案护航

    2024-01-17 11:50:05       33 阅读
  12. PHP 数据类型面试题

    2024-01-17 11:50:05       30 阅读
  13. vue 实现 全部页全部选

    2024-01-17 11:50:05       31 阅读