leetcode——67. 二进制求和
简单题
class Solution: def addBinary(self, a: str, b: str) -> str: s=0 a=list(a) a=a[::-1] for i in range(1,len(a)): s+=int(a[i])*2**i s+=int(a[0]) t=0 b=list(b) b=b[::-1] for j in range(1,len(b)): t+=int(b[j])*2**j t+=int(b[0]) n=s+t return bin(n)[2:]
执行用时 :60 ms, 在所有 python3 提交中击败了36.13%的用户
内存消耗 :13.7 MB, 在所有 python3 提交中击败了5.24%的用户
——2019.10.17
没有做出来,还有位运算的思想没有去了解。
官方题解是将字符串翻转,然后进行求解,再将结果翻转,思路很巧妙。
就是自己没有想出来,还需要再次进行复习。
public String addBinary(String a, String b) { StringBuffer ans = new StringBuffer(); int n = Math.max(a.length(), b.length()), carry = 0; for (int i = 0; i < n; ++i) { carry += i < a.length() ? (a.charAt(a.length() - 1 - i) - '0') : 0; carry += i < b.length() ? (b.charAt(b.length() - 1 - i) - '0') : 0; ans.append((char) (carry % 2 + '0')); carry /= 2; } if (carry > 0) { ans.append('1'); } ans.reverse(); return ans.toString(); }
——2020.7.7
我的前方是万里征途,星辰大海!!