LeetCode Add Binary
2016-01-19 09:27
375 查看
LeetCode解题之Add Binary
原题
对两个二进制的字符串求和。注意点:
最高位进位
例子:
输入: a = “111”, b = “1”
输出: “1000”
解题思路
从后往前依次相加,通过二进制来计算该位的值和进位值。如果最高位还有进位要添加一个位,最后把结果翻转。AC源码
[code]class Solution(object): def addBinary(self, a, b): """ :type a: str :type b: str :rtype: str """ result = [] carry = val = 0 if len(a) < len(b): a, b = b, a lengthA = len(a) lengthB = len(b) for i in range(lengthA): val = carry val += int(a[-(i + 1)]) if i < lengthB: val += int(b[-(i + 1)]) carry, val = val // 2, val % 2 result.append(str(val)) if carry: result.append(str(carry)) return "".join(result[::-1]) if __name__ == "__main__": assert Solution().addBinary("111", "1") == "1000"
欢迎查看我的Github (https://github.com/gavinfish/LeetCode-Python) 来获得相关源码。
相关文章推荐
- JPA Hibernate应用实例
- FireMonkey的窗口Handle转为Windows窗口的Handle
- eclipse启动报错"failed to create the java virtual machine"
- 【精品推荐】200多种Android动画效果的强悍框架,太全了
- linux上设置tomcat下web项目只需要ip地址访问省略端口和项目名称
- 随机生成字符串-php-js
- 了解JavaScript
- (转)最优雅退出 Android 应用程序的 6 种方式
- bzoj2756: [SCOI2012]奇怪的游戏
- HDU【1010】Tempter of the Bone
- mysql错误删除默认root用户解决办法
- HttpWatch工具简介及使用技巧
- 8001正红背绿冠号收集和探讨
- iOS开发push动画效果
- postgresql数据库安装二(二进制包安装)
- docker使用场景
- iOS 【Multithreading-GCD一次性代码及其在单例模式的应用】
- 软件滤波
- 解决移动端点击链接触发的颜色块
- sql server中sql语句中单引号怎么转义?【转】