Add Binary - LeetCode
题目:
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
二进制加法,很简单的。我选择把a和b反转,再进行逐位相加。
代码:
class Solution:
# @param a, a string
# @param b, a string
# @return a string
def addBinary(self, a, b):
a = a[::-1]
b = b[::-1]
if len(a) > len(b):
temp = self.add(a,b)
else:
temp = self.add(b,a)
s = ''
for i in temp[::-1]:
s += str(i)
return s
def add(self,a,b):
temp = [int(i) for i in a]
for i in range(len(b)):
temp[i] = temp[i] + int(b[i])
if temp[i] == 2:
j = i
while j < len(temp)-1:
if temp[j] == 2:
temp[j] = 0
temp[j+1] += 1
j += 1
if temp[-1] >= 2:
temp[-1] -= 2
temp.append(1)
return temp