forked from shuboc/LeetCode-2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
add-binary.py
32 lines (30 loc) · 812 Bytes
/
add-binary.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# Time: O(n)
# Space: O(1)
#
# Given two binary strings, return their sum (also a binary string).
#
# For example,
# a = "11"
# b = "1"
# Return "100".
#
class Solution:
# @param a, a string
# @param b, a string
# @return a string
def addBinary(self, a, b):
result, carry, val, len_a, len_b, i = "", 0, 0, len(a), len(b), 0
for i in xrange(max(len_a, len_b)):
val = carry
if i < len_a:
sum += int(a[-(i + 1)])
if i < len_b:
sum += int(b[-(i + 1)])
carry, val = val / 2, val % 2
result = "{0}{1}".format(val, result)
if carry == 1:
result = "1" + result
return result
if __name__ == '__main__':
result = Solution().addBinary('11', '1')
print result