标签:列表 color range dbi 返回 示例 5.4 str 相加
题目:
给定两个二进制字符串,返回他们的和(用二进制表示)。
输入为非空字符串且只包含数字 1
和 0
。
示例 1:
输入: a = "11", b = "1" 输出: "100"
思路:我反正佛了我自己的思路。。先把字符串转列表,然后加0对其,因为我不会从高位加所以就颠倒相加得结果,结果是列表,再颠倒转字符串就行了。。。。我去。。这个不熟python可真难受
class Solution: def addBinary(self, a: str, b: str) -> str: a1=list(a) b1=list(b) n1=len(a1) n2=len(b1) r=[] jin=0 c=0 if(n1>n2): for i in range(n1-n2): b1.insert(i,‘0‘) a1.reverse() b1.reverse() for j in range(n1): c=int(a1[j])+int(b1[j])+jin if(c<=1): jin=0 if(c>2): c=1 jin=1 if(c==2): c=0 jin=1 r.append(str(c)) if(jin==1): r.append(‘1‘) if(n1<n2): for i in range(n2-n1): a1.insert(i,‘0‘) a1.reverse() b1.reverse() for j in range(n2): c=int(a1[j])+int(b1[j])+jin if(c<=1): jin=0 if(c>2): c=1 jin=1 if (c == 2): c = 0 jin = 1 r.append(str(c)) if(jin==1): r.append(‘1‘) if(n1==n2): a1.reverse() b1.reverse() for j in range(n1): c=int(a1[j])+int(b1[j])+jin if(c<=1): jin=0 if(c>2): c=1 jin=1 if (c == 2): c = 0 jin = 1 r.append(str(c)) if(jin==1): r.append(‘1‘) r.reverse() ans=‘‘ for i in range(len(r)): ans+=str(r[i]) return ans
调试才知道自己有多菜。。。
标签:列表 color range dbi 返回 示例 5.4 str 相加
原文地址:https://www.cnblogs.com/dmndxld/p/10817422.html