《Leetcode》67 二進位制求和

2021-10-07 10:59:48 字數 1070 閱讀 3573

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

輸入為非空字串且只包含數字10

示例 1:

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

輸出: "100"

示例 2:

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

輸出: "10101"

題目比較簡單,將兩個二進位制的字串加起來然後返回乙個二進位制的字串

我採用的方式是將二進位制之和轉為十進位制在轉為二進位制,有兩個方法:自己寫和呼叫內建函式

呼叫內建函式

補充幾個內建函式

**如下:

class solution:

def addbinary(self, a: str, b: str) -> str:

temp1,temp2 = 0,0

for i in range(len(a)):

if int(a[i])==1:

temp1+=2**(len(a)-i-1)

for i in range(len(b)):

if int(b[i])==1:

temp2+=2**(len(b)-i-1)

sum = temp1+temp2

if sum==0:

return '0'

res=''

#十進位制轉二進位制,除2取餘,直到商為0的時候

#返回商和餘數

while sum:

sum, z = divmod(sum, 2)

res+=str(z)

return res[::-1]

#呼叫內建函式

sum = int(a,2)+int(b,2)

binary = bin(sum)

return binary[2:]

總結:**比較簡單,有些內建函式還不是太熟悉。

Leetcode 67 二進位制求和

給定兩個二進位制字串,返回他們的和 用二進位制表示 輸入為非空字串且只包含數字 1 和 0。示例 1 輸入 a 11 b 1 輸出 100 示例 2 輸入 a 1010 b 1011 輸出 10101 class solution if blen 0 carry sum 2 錯誤的 if sum 2...

leetcode 67 二進位制求和

給定兩個二進位制字串,返回他們的和 用二進位制表示 輸入為非空字串且只包含數字1和0。示例 1 輸入 a 11 b 1 輸出 100 示例 2 輸入 a 1010 b 1011 輸出 10101 新鮮現做 幸福coding class solution object def addbinary se...

leetcode 67 二進位制求和

給定兩個二進位制字串,返回他們的和 用二進位制表示 輸入為非空字串且只包含數字 1 和 0。示例1 輸入 a 11 b 1 輸出 100 示例2 輸入 a 1010 b 1011 輸出 10101 解題思路 老老實實的採用了較為暴力的列舉法來作答,所以 較為複雜,且可讀性較差 class solut...