11,808
社区成员




给你两个二进制字符串,返回它们的和(用二进制表示)。
输入为 非空 字符串且只包含数字 1
和 0
。
示例 1:
输入: a = "11", b = "1"
输出: "100"
示例 2:
输入: a = "1010", b = "1011"
输出: "10101"
提示:
'0'
或 '1'
组成。1 <= a.length, b.length <= 10^4
"0"
,就都不含前导零。class Solution(object):
def bi_add(self, a_list, ll):
i = 0
jinwei = 0
while i < len(a_list) and i < len(ll):
temp = a_list[i] + ll[i] + jinwei
jinwei = temp/2
a_list[i] = temp % 2
i += 1
while i < len(a_list):
temp = jinwei + a_list[i]
jinwei = temp/2
a_list[i] = temp % 2
i += 1
if jinwei:
a_list.append(1)
b = ''.join(str(k) for k in reversed(a_list))
return b
def addBinary(self, a, b):
"""
:type a: str
:type b: str
:rtype: str
"""
a_list = [int(i) for i in reversed(a)]
b_list = [int(i) for i in reversed(b)]
len1 = len(a_list)
len2 = len(b_list)
if len1 >= len2:
c = self.bi_add(a_list, b_list)
else:
c = self.bi_add(b_list, a_list)
return c