989. Add to Array-Form of Integer

Easy (Dễ) Python 🔗 Xem trên LeetCode

📋 Đề Bài

The array-form of an integer num is an array representing its digits in left to right order.

  • For example, for num = 1321, the array form is [1,3,2,1].

Given num, the array-form of an integer, and an integer k, return the array-form of the integer num + k.

 

Example 1:

Input: num = [1,2,0,0], k = 34
Output: [1,2,3,4]
Explanation: 1200 + 34 = 1234

Example 2:

Input: num = [2,7,4], k = 181
Output: [4,5,5]
Explanation: 274 + 181 = 455

Example 3:

Input: num = [2,1,5], k = 806
Output: [1,0,2,1]
Explanation: 215 + 806 = 1021

 

Constraints:

  • 1 <= num.length <= 104
  • 0 <= num[i] <= 9
  • num does not contain any leading zeros except for the zero itself.
  • 1 <= k <= 104

💻 Lời Giải

Python 0989-add-to-array-form-of-integer.py
class Solution:
    def reverseStr(self, num: List[int]) -> None:
        l = 0
        r = len(num) - 1
        
        while l < r:
            num[l], num[r] = num[r], num[l]
            l += 1
            r -= 1
        
    def addToArrayForm(self, num: List[int], k: int) -> List[int]:
        self.reverseStr(num)
        n = len(num)
        carry = 0
        
        for i in range(n):
            carry += k % 10
            num[i] += carry
            carry = num[i] // 10
            num[i] %= 10
            k //= 10
            
        k += carry
        
        while k > 0:
            num.append(k % 10)
            k //= 10
            
        self.reverseStr(num)

        return num