(Medium #43) Multiply Strings

Problem

Given two non-negative integers num1 and num2 represented as strings, return the product of num1 and num2, also represented as a string.
Example 1:
Input: num1 = "2", num2 = "3"
Output: "6"
Example 2:
Input: num1 = "123", num2 = "456"
Output: "56088"
Note:
  1. The length of both num1 and num2 is < 110.
  2. Both num1 and num2 contain only digits 0-9.
  3. Both num1 and num2 do not contain any leading zero, except the number 0 itself.
  4. You must not use any built-in BigInteger library or convert the inputs to integer directly.

My solution

class Solution:
    def multiply(self, num1: str, num2: str) -> str:
        sum = 0
        cand = []        
        
        cand_pos1 = 1
        for i in range(len(num1)-1, -1, -1):            
            cand_pos2 = cand_pos1
            for j in range(len(num2)-1, -1, -1):                
                sum += int(num1[i])*int(num2[j])*cand_pos2
                cand_pos2 *= 10
            cand_pos1 *= 10
                
        return str(sum)
Runtime: 144ms, Memory: 13.9MB

댓글