Multiply Strings

LeetCode 43

class Solution:
    def multiply(self, num1, num2):
        """
        :type num1: str
        :type num2: str
        :rtype: str
        """
        """
        思路:
            123    nums2
          *  23    nums1
        ----------
            369
           246 
        """
        res = [0]* (len(num1) + len(num2))
        for i, v1 in enumerate(reversed(num1)):
            for j, v2 in enumerate(reversed(num2)):
                res[i+j] = res[i+j] + int(v1) * int(v2)
                res[i+j+1] = int (res[i+j+1] + res[i+j]/10)
                res[i+j] %= 10
        
        while res[-1] == 0 and len(res) > 1:
            res.pop()
            
        return "".join(map(str, res[::-1]))

Last updated