[LeetCode][Python]67.Add Binary

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

For example,

a = "11"

b = "1"

Return "100".

思路:

把字符串表示成二进制数字,然后相加,再转换为二进制表示为字符串。

引申:一个问题,在Python中,如何将一个字符串转换为相应的二进制串(01形式表示),并且能够将这个二进制串再转换回原来的字符串

>>> bin(int('256', 10))
'0b100000000'
>>> str(int('0b100000000', 2))
'256'

一开始使用replace,发现效率很低,后来换为了[2:]之后就快了很多。

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
class Solution(object):
    def addBinary(self, a, b):
        """
        :type a: str
        :type b: str
        :rtype: str
        """
        # return bin(int(str(int(a, 2) + int(b, 2)), 10)).replace('0b', '')
        return bin(int(str(int(a, 2) + int(b, 2)), 10))[2:]


if __name__ == '__main__':
    sol = Solution()
    a = '11'
    b = '1'
    print sol.addBinary(a, b)

    a = '0'
    b = '0'
    print sol.addBinary(a, b)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,352评论 0 33
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,969评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,578评论 19 139
  • LeetCode 刷题随手记 - 第一部分 前 256 题(非会员),仅算法题,的吐槽 https://leetc...
    蕾娜漢默阅读 18,132评论 2 36
  • 这篇文章是写给你的,我知道你读得懂它。 (一) 窗外有靡软的音传来,梦的时光已流远。早...
    薛紫夜阅读 3,783评论 8 5