前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Q67 Add Binary

Q67 Add Binary

作者头像
echobingo
发布2018-04-25 16:43:29
5100
发布2018-04-25 16:43:29
举报
文章被收录于专栏:Bingo的深度学习杂货店

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

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

解题思路:

使用Python的内置函数 .zfill(总长度) 将 a、b两字符串补为相等的字符串,然后从后往前相加。

Python实现:
代码语言:javascript
复制
class Solution:
    def addBinary(self, a, b):
        """
        :type a: str
        :type b: str
        :rtype: str
        """
        ans = ''
        alen = len(a); blen = len(b)
        if alen < blen:  # 如果两字符串不相等,则较短的字符串前面补0到与较长的字符串等长
            a = a.zfill(blen)
        elif alen > blen:
            b = b.zfill(alen)
        bit = 0
        i = len(a) - 1
        while i >= 0:
            if int(a[i]) + int(b[i]) + bit == 0:
                ans = '0' + ans
                bit = 0
            elif int(a[i]) + int(b[i]) + bit == 1:  
                ans = '1' + ans
                bit = 0
            elif int(a[i]) + int(b[i]) + bit == 2: #产生进位
                ans = '0' + ans
                bit = 1
            else:  #产生进位
                ans = '1' + ans
                bit = 1
            i -= 1
        if bit == 1: # 如果最后还有进位
            ans = '1' + ans
        return ans

a = "11"
b = "111"
c = Solution()
print(c.addBinary(a,b)) # '1010'
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.02.28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 解题思路:
  • Python实现:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档