Q67 Add Binary

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

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

解题思路:

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

Python实现:
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'

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏好好学java的技术栈

自己动手写一个单链表

单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始。

2176
来自专栏Android开发小工

Java集合解惑

本文取自工匠若水的qq群里的Java基础题目,把里面有关Java集合放在一起。 全文github地址

1112
来自专栏开发之途

Java集合框架源码解析之LinkedHashMap

1193
来自专栏LinkedBear的个人空间

唠唠SE的集合-06——Set接口 原

注重独一无二的性质,该体系集合可以知道某物是否已经存在于集合中,不存储重复的元素。

773
来自专栏用户画像

剑指offer 包含min函数的栈

定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。

892
来自专栏来自地球男人的部落格

[LeetCode] 40. Combination Sum II

【原题】 Given a collection of candidate numbers (C) and a target number (T), fi...

1955
来自专栏赵俊的Java专栏

从源码上分析 LinkedList(附图)

1585
来自专栏余林丰

有关LinkedList常用方法的源码解析

jdk1.7.0_79   上文里解析了有关ArrayList中的几个常用方法的源码——《有关ArrayList常用方法的源码解析》,本文将对LinkedLi...

25910
来自专栏LeetCode

LeetCode 830.Position of Large Group

总结:本题属于双指针的问题,一个标记重复字符串的左,一个标记右,从字符串的头部滑动到尾部,遇到满足一部要求的解后,加入res。

430
来自专栏Android机动车

数据结构学习笔记——线性表(上)

线性表元素的个数n(n≥0)定义为线性表的长度,当n=0时,称为空表。在非空表中的每个元素都有一个确定的位置,如a1是第一个元素,an是最后一个元素,ai是第i...

602

扫码关注云+社区