python 练习题 67. 二进制求和
地址:https://leetcode-cn.com/problems/add-binary/
1 ''' 2 给你两个二进制字符串,返回它们的和(用二进制表示)。 3 4 输入为 非空 字符串且只包含数字 1 和 0。 5 6 7 8 示例 1: 9 10 输入: a = "11", b = "1" 11 输出: "100" 12 示例 2: 13 14 输入: a = "1010", b = "1011" 15 输出: "10101" 16 17 ''' 18 19 ''' 20 思路: 21 1.从字符串a、b最后转成数值相加,最后ab去掉最后以为 22 2.小于2,返回值为实际相加数 23 3.等于2,返回0,再返回newab =1,如果此时ab长度为 1,0、0,1、1,1则返回值再加1 24 4.大于2,返回1,再返回newab =1,如果此时ab长度为 1,0、0,1、1,1则返回值再加1 25 5.最后取反,转成str 26 ''' 27 28 29 30 class Solution: 31 def addBinary(self, a: str, b: str) -> str: 32 33 res = '' 34 newab = 0 35 while True: 36 37 la = len(a) 38 lb = len(b) 39 if la < 1 and lb < 1: 40 break 41 42 ab = (0 if la < 1 else int(a[-1])) + (0 if lb < 1 else int(b[-1])) + newab 43 if ab < 2: 44 res += str(ab) 45 newab = 0 46 else: 47 if ab ==2: 48 res += '0' 49 else: 50 res += '1' 51 newab = 1 52 if la + lb == 1 or la == lb == 1: 53 res += str(newab) 54 55 a = a[:-1] 56 b = b[:-1] 57 return str(res)[::-1]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/add-binary
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。