题目:给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1
和 0
。
示例 1:
复制代码
1
2输入: a = "11", b = "1" 输出: "100"
示例 2:
复制代码
1
2输入: a = "1010", b = "1011" 输出: "10101"
我的python写法:
复制代码
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
30class Solution(object): def addBinary(self, a, b): """ :type a: str :type b: str :rtype: str """ m = len(a) n = len(b) p = '' if m==max(m,n): a='0'+a #多加一位,防止进位溢出。 b='0'*(m-n+1)+b else: b='0'+b a='0'*(n-m+1)+a n = len(b) #获得字符串长度 tmp='0' #进位符标志 for i in range(n-1,-1,-1): #倒序相加 if a[i]==b[i]: p = tmp+p if b[i]=='1': tmp='1' else: tmp='0' elif tmp=='0': p='1'+p else: p='0'+p if p[0]=='0': return p[1:] return p
最后
以上就是狂野老师最近收集整理的关于LeetCode 67. 二进制求和 python的全部内容,更多相关LeetCode内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复