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专栏

从源码上分析 LinkedList(附图)

1635
来自专栏韦弦的偶尔分享

Swift 有效的括号 - LeetCode

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。

1882
来自专栏用户画像

剑指offer 包含min函数的栈

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

952
来自专栏余林丰

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

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

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

[LeetCode] 40. Combination Sum II

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

2005
来自专栏wannshan(javaer,RPC)

JDK PriorityBlockingQueue remove(Object o) 源码分析

先知道PriorityBlockingQueue 是利用数组存储二叉堆实现。最小值(最优先)放在queue[0]位置。 //删除某个元素 public bool...

3717
来自专栏奔跑的蛙牛技术博客

集合(2)

我们知道数组和ArrayList有一个重大缺陷。这个缺陷就从数组的中间位置删除一个元素需要付出重大的代价,因为从数组中间删除一个元素,元素中间的位置都需要向前移...

812
来自专栏皮皮之路

【JDK1.8】JDK1.8集合源码阅读——LinkedList

32312
来自专栏LinkedBear的个人空间

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

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

823
来自专栏Jaycekon

Java 集合系列0、概述

1833

扫码关注云+社区

领取腾讯云代金券