給定兩個字串形式的非負整數 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 庫,也不能直接將輸入的字串轉換為整數形式。原始碼 ...