力扣 leetcode 989. 陣列形式的整數加法 (python)
阿新 • • 發佈:2021-01-22
技術標籤:pythonleetcode列表字串pythonleetcode演算法
Topic:
對於非負整數 X 而言,X 的陣列形式是每位數字按從左到右的順序形成的陣列。例如,如果 X = 1231,那麼其陣列形式為 [1,2,3,1]。
給定非負整數 X 的陣列形式 A,返回整數 X+K 的陣列形式。
Example_1:
輸入:A = [1,2,0,0], K = 34
輸出:[1,2,3,4]
解釋:1200 + 34 = 1234
Example_2:
輸入:A = [2,7,4], K = 181
輸出:[4,5,5]
解釋:274 + 181 = 455
Example_3:
輸入:A = [2,1,5], K = 806
輸出:[1,0,2,1]
解釋:215 + 806 = 1021
Example_4:
輸入:A = [9,9,9,9,9,9,9,9,9,9], K = 1
輸出:[1,0,0,0,0,0,0,0,0,0,0]
解釋:9999999999 + 1 = 10000000000
Solution_1:
按照不同的位數遍歷列表A並輸出
之後加上K的值並轉換成列表的形式輸出
執行效率低
Code_1:
class Solution:
def addToArrayForm(self, A: List[int], K: int) -> List[int]:
ans = 0
n = len(A)
for i in range(len(A)):
ans += (A[n - i - 1] * 10 ** (i))
ans += K
res = list(str(ans))
return res
Solution_2:
將原列表中的值逐位加入到空字串中
並將字串轉換為整數的形式
最後同樣是加上k
轉換為列表後輸出
Code_2:
class Solution:
def addToArrayForm(self, A: List[int], K: int) -> List[int]:
ans = int(''.join(str(i) for i in A))
ans += K
return(list(str(ans)))
Result_2:
Solution_3:
與題解思路相同