1. 程式人生 > >67.二進位制加法

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'

效能:

這裡寫圖片描述

參考答案(python):

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

效能:

這裡寫圖片描述

參考答案(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; } };

效能:

這裡寫圖片描述