class Solution: # @param a, a string # @param b, a string # @return a string def addBinary(self, a, b): n=len(a) m=len(b) if n>=m: c=a[:n-m] else: c=b[:m-n] flag=0 rst='' i=-1 while -i<=min(n,m): if a[i]=='1' and b[i]=='1': if flag==0: rst='0'+rst else: rst='1'+rst flag=1 elif a[i]=='0' and b[i]=='0': if flag==0: rst='0'+rst else: rst='1'+rst flag=0 elif flag==0: rst='1'+rst flag=0 else: rst='0'+rst flag=1 i-=1 for i in reversed(range(abs(n-m))): if c[i]=='1' and flag==1: rst='0'+rst flag=1 elif c[i]=='0' and flag==1: rst='1'+rst flag=0 else: rst=c[i]+rst flag=0 if flag==1: rst='1'+rst return rst
Friday, September 12, 2014
Leetcode: Add Binary @Python
Subscribe to:
Post Comments
(
Atom
)
Hello. I just started trying out the leetcode problems. For this problem, I find that people always employ a relatively long answer. Is there a reason the following answer is not chosen? Thank you!
ReplyDeleteintAB = int(a, 2) + int(b,2)
return "{0:b}".format(intAB)