概述
题目描述
给定两个二进制字符串,返回他们的和(用二进制表示)。
输入为非空字符串且只包含数字 1 和 0。
示例1:
输入: a = “11”, b = “1”
输出: “100”
示例2:
输入: a = “1010”, b = “1011”
输出: “10101”
方法一:内置函数
class Solution(object):
def addBinary(self, a, b):
"""
:type a: str
:type b: str
:rtype: str
"""
return bin(int(a, 2) + int(b, 2))[2:]
方法二:较短的字符串用0补齐再相加
class Solution(object):
def addBinary(self, a, b):
"""
:type a: str
:type b: str
:rtype: str
"""
if len(a) > len(b):
b = '0'*(len(a)-len(b)) + b
elif len(a) < len(b):
a = '0'*(len(b)-len(a)) + a
ans =''
flag = 0
for i in range(len(a)-1, -1, -1):
temp = int(a[i]) + int(b[i]) + flag
if temp >= 2:
flag = 1
ans += str(temp-2)
else:
ans += str(temp)
flag = 0
if flag:
ans += '1'
return ans[::-1]
最后
以上就是年轻冷风为你收集整理的leetcode67-二进制求和(python)的全部内容,希望文章能够帮你解决leetcode67-二进制求和(python)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复