给定两个二进制字符串,返回他们的和(用二进制表示)。
输入为非空字符串且只包含数字 1
和 0
。
示例 1:
输入: a = "11", b = "1" 输出: "100"
示例 2:
输入: a = "1010", b = "1011" 输出: "10101"
class Solution:
def addBinary(self, a, b):
"""
:type a: str
:type b: str
:rtype: str
"""
sr =""
st =[]
flag = 0
###### 填零补位 ############################################
if len(a)<len(b):
a="0"*(len(b)-len(a))+a
else:
b="0"*(len(a)-len(b))+b
###### 二进制加法 ############################################
for i in range(len(a)-1,-1,-1):
print(a[i],b[i])
if i == 0 and int(a[i])+ int(b[i])+ flag== 2:
st.append(0)
st.append(1)
elif i == 0 and int(a[i])+ int(b[i])+ flag== 3:
st.append(1)
st.append(1)
elif int(a[i])+ int(b[i])+ flag == 2:
st.append(0)
flag = 1
elif int(a[i])+ int(b[i])+ flag == 3:
st.append(1)
flag =1
elif int(a[i])+int(b[i])+ flag == 1:
st.append(1)
flag = 0
else:
st.append(0)
flag = 0
###### 把list转换成字符串 #######################################
for i in st[::-1]:
sr += str(i)
return sr
class Solution(object):
def addBinary(self, a, b):
"""
:type a: str
:type b: str
:rtype: str
"""
num=int(a,2)+int(b,2)
ans=bin(num)
return ans[2:]