1.题目描述
给定两个二进制字符串,返回他们的和(用二进制表示)。
输入为非空字符串且只包含数字 1 和 0。
示例 1:
输入: a = "11", b = "1"
输出: "100"
示例 2:输入: a = "1010", b = "1011"
输出: "10101"
2.解法
解法一:
class Solution:
def addBinary(self, a: str, b: str) -> str:
a_i = len(a) - 1
b_j = len(b) - 1
carry = 0
res = ''
while a_i >= 0 or b_j >= 0:
tmp = 0
if a_i >= 0:
tmp += int(a[a_i])
a_i -= 1
if b_j >= 0:
tmp += int(b[b_j])
b_j -= 1
tmp += carry
carry = tmp // 2
res = str(tmp % 2) + res
return '1' + res if carry > 0 else res