Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
思路
注意考虑几个条件即可:a和b的长度不同,则位数短的字符串首先停止迭代;注意循环过程中和循环结束后的进位。
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 33 34 35
| class Solution(object): def addBinary(self, a, b): """ :type a: str :type b: str :rtype: str """ lena = len(a) lenb = len(b) count = summ = carry = 0 result = '' while (count < lena or count < lenb): if (count < lena and count < lenb): summ = int(a[-count-1]) + int(b[-count-1]) + carry else: if (lena > lenb): summ = int(a[-count-1]) + carry else: summ = int(b[-count-1]) + carry if (summ == 2): carry = 1 summ = 0 elif (summ == 3): carry = 1 summ = 1 else: carry = 0 result = str(summ) + result count += 1 if (carry == 1): result = str(carry) + result return result
|