1. 程式人生 > >LeetCode刷題之67Python二進位制求和

LeetCode刷題之67Python二進位制求和

題目:

給定兩個二進位制字串,返回他們的和(用二進位制表示)。

輸入為非空字串且只包含數字 1 和 0

示例 1:

輸入: a = "11", b = "1"
輸出: "100"

示例 2:

輸入: a = "1010", b = "1011"
輸出: "10101"

自己寫的通不過測試,看看別人的解答:

轉化為10進位制相加再轉化回去。

class Solution(object):
    def addBinary(self, a, b):
        """
        :type a: str
        :type b: str
        :rtype: str
        """
        a1 = int(a, 2)
        b1 = int(b, 2)
        c = a1 + b1
        c1 = bin(c)[2:]
        return c1

int()函式將一個數字或base型別的字串轉換成整數。

int(x=0)

int(x, base=10),base預設值為10,也就是說不指定base的值時,函式將x按十進位制處理。

注:

1. x 可以是數字或字串,但是base被賦值後 x 只能是字串

2. x 作為字串時必須是 base 型別,也就是說 x 變成數字時必須能用 base 進製表示

 
bin()函式返回一個整型int或者長整數long int的二進位制表示。

bin()運算返回的是二進位制。所以前兩位是二進位制的標誌,需要[2:]去除。