LeetCode67題 二進位制求和

2021-10-08 21:38:34 字數 1147 閱讀 6170

67.二進位制求和

class solution:

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

if a=='0' and b=='0':

return '0'

else:

x=0for i in range(1,len(a)+1):

x+=int(a[-i])*pow(2,i-1)

for i in range(1,len(b)+1):

x+=int(b[-i])*pow(2,i-1)

y=''

while x>0:

x,z=divmod(x,2)

y=str(z)+y

return y`

方法二:

```python

a:str

=input

("輸入a:")b:

str=

input

("輸入b:")if

len(a)

<

len(b)

: a,b=b,a

a=list

(a)for i in

range(-

1,-len

(b)-1,

-1):

if b[i]

=='1'

:if a[i]

=='1'

: k=i

while

(a[k])==

'1':

a[k]

='0'

k-=1if k==

-len

(a)-1:

a.insert(0,

'0')

break

a[k]

='1'

else

: a[i]

='1'

print(''

.join(a)

)

這裡認為a比b長,將a 轉化為列表,對b從右向左遍歷,如果b[i]的值不是1,就不需要進製,如果是1 ,則考慮進製問題,其中還有乙個由進製產生多出一位的情況,則在最前面插入乙個『0』

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...