LeetCode刷題之67Python二進位制求和
阿新 • • 發佈:2018-12-24
題目:
給定兩個二進位制字串,返回他們的和(用二進位制表示)。
輸入為非空字串且只包含數字 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:]去除。