Multiply Strings Posted on 2018-08-19 Descriptionhttps://leetcode.com/problems/multiply-strings/description/ Solution12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152class Solution: def multiply(self, num1, num2): """ :type num1: str :type num2: str :rtype: str """ lens1 = len(num1) lens2 = len(num2) if lens1 == 0 or lens2 == 0 or int(num1) == 0 or int(num2) == 0: return "0" ret = "" multi_matrix = [] max_len = -1 for i in range(0, lens2): string = self.multiply_one_digit(num1, num2[-1-i]) + "0" * i max_len = max(max_len, len(string)) multi_matrix.append(string) has_value = True append = 0 for digit in range(0, max_len): has_value = False value = 0 for index in range(len(multi_matrix)): if digit < len(multi_matrix[index]): value += int(multi_matrix[index][-1-digit]) value += append append = value // 10 ret = str(value % 10) + ret if append != 0: ret = str(append) + ret return ret def multiply_one_digit(self, num, digit): ret = "" append = 0 for i in range(0, len(num)): result_digit = str((int(num[-1-i])*int(digit) + append) % 10) ret = result_digit + ret append = (int(num[-1-i])*int(digit) + append) // 10 print (ret) print (append) if append != 0: ret = str(append) + ret return ret