LeetCode|67.二进制加法

Add Binary 问题描述: Given two binary strings, return their sum (also a binary string).
For example,
a = “11”
b = “1”
Return “100”.
参考答案(python):

class Solution(object): def addBinary(self, a, b): if len(a)==0: return b if len(b)==0: return a if a[-1] == '1' and b[-1] == '1': return self.addBinary(self.addBinary(a[0:-1],b[0:-1]),'1')+'0' if a[-1] == '0' and b[-1] == '0': return self.addBinary(a[0:-1],b[0:-1])+'0' else: return self.addBinary(a[0:-1],b[0:-1])+'1'

性能: LeetCode|67.二进制加法
文章图片

参考答案(python):
class Solution(object): def addBinary(self, a, b): a = int(a, 2) b = int(b, 2) return bin(a+b)[2:]

性能: LeetCode|67.二进制加法
文章图片

参考答案(c++):
class Solution { public: string addBinary(string a, string b) { string s = ""; int c = 0, i = a.size() - 1, j = b.size() - 1; while(i >= 0 || j >= 0 || c == 1) { c += i >= 0 ? a[i --] - '0' : 0; c += j >= 0 ? b[j --] - '0' : 0; s = char(c % 2 + '0') + s; c /= 2; }return s; } };

性能: 【LeetCode|67.二进制加法】LeetCode|67.二进制加法
文章图片

    推荐阅读