LeetCode 415 字串相加

2021-10-01 18:39:58 字數 1298 閱讀 2399

給定兩個字串形式的非負整數 num1 和num2 ,計算它們的和。

注意:num1 和num2 的長度都小於 5100.

num1 和num2 都只包含數字 0-9.

num1 和num2 都不包含任何前導零。

你不能使用任何內建 biginteger 庫, 也不能直接將輸入的字串轉換為整數形式。

我總覺得之前做過一道類似的。十進位制加法那就按照進製算吧,不需要位運算。

class

solution

:def

addstrings

(self, num1:

str, num2:

str)

->

str:

res =

'' cur, i, j =0,

len(num1)-1

,len

(num2)-1

while cur !=

0or i >=

0or j >=0:

tmp =

0if i >=0:

tmp +=

ord(num1[i])-

ord(

'0')

i -=

1if j >=0:

tmp +=

ord(num2[j])-

ord(

'0')

j-=1 tmp += cur

if tmp >=10:

cur =

1 tmp %=

10else

: cur =

0 res =

str(tmp)

+ res

return res

另外一種方式就是把短的字元前面補0,補成和長字元長度一樣的。 補齊的方式如下所示。

if

len(num1)

>

len(num2)

: num2 =

'0'*

(len

(num1)

-len

(num2)

)+ num2

iflen(num2)

>

len(num1)

: num1 =

'0'*

(len

(num2)

-len

(num1)

)+ num1

LeetCode 415 字串相加

給定兩個字串形式的非負整數 num1 和num2 計算它們的和。注意 num1 和num2 的長度都小於 5100.num1 和num2 都只包含數字 0 9.num1 和num2 都不包含任何前導零。你不能使用任何內建 biginteger 庫,也不能直接將輸入的字串轉換為整數形式。利用字元流,將...

LeetCode 415 字串相加

給定兩個字串形式的非負整數 num1 和num2 計算它們的和。注意 num1 和num2 的長度都小於 5100.num1 和num2 都只包含數字 0 9.num1 和num2 都不包含任何前導零。你不能使用任何內建 biginteger 庫,也不能直接將輸入的字串轉換為整數形式。無 class...

LeetCode 415 字串相加

題目 給定兩個字串形式的非負整數 num1 和num2 計算它們的和。注意 num1 和num2 的長度都小於 5100.num1 和num2 都只包含數字 0 9.num1 和num2 都不包含任何前導零。你不能使用任何內建 biginteger 庫,也不能直接將輸入的字串轉換為整數形式。原始碼 ...