- 分类:Math/String
- 时间复杂度: O(n)
67. Add Binary
Given two binary strings, return their sum (also a binary string).
The input strings are both non-empty and contains only characters 1
or 0
.
Example 1:
Input: a = "11", b = "1"
Output: "100"
Example 2:
Input: a = "1010", b = "1011"
Output: "10101"
代码:
class Solution:
def addBinary(self, a: 'str', b: 'str') -> 'str':
if len(a)>len(b):
long=a
short=b
else:
long=b
short=a
n=min(len(a),len(b))
m=max(len(a),len(b))
res=""
sum_=0
for i in range(n):
sum_+=int(b[-1-i])+int(a[-1-i])
current=sum_%2
res=str(current)+res
sum_=sum_//2
for i in range(n,m):
sum_+=int(long[-1-i])
current=sum_%2
res=str(current)+res
sum_=sum_//2
if sum_!=0:
res=str(sum_)+res
return res
讨论:
1.虽然此代码很丑,但是效率最高!good!keep moving!
网友评论