🖥 Умножение строк
https://t.me/pythonlСложность: Средняя
Условие задачи:
Даны два неотрицательных целых числа num1 и num2, представленные в виде строк, вернуть произведение num1 и num2, также представленное в виде строки.
Примечание. Вы не должны использовать какую-либо встроенную библиотеку BigInteger или напрямую преобразовывать входные данные в целое число.
Пример:
Ввод: num1 = "2", num2 = "3"
Вывод: "6"
Ввод: num1 = "123", num2 = "456"
Вывод: "56088"
Решение:
Время выполнения: 46 мс, быстрее.
Использование памяти: 13,8 МБ.
class Solution:
def multiply(self, num1: str, num2: str) -> str:
d1 = {'0':0, '1':1, '2':2, '3':3, '4':4, '5':5, '6':6, '7':7, '8':8, '9':9}
d2 = {v:k for k,v in d1.items()}
n1 = sum([d1[c]*(10**i) for i,c in enumerate(num1[::-1])])
n2 = sum([d1[c]*(10**i) for i,c in enumerate(num2[::-1])])
n3, s = n1*n2, ''
while n3:
s = d2[n3%10] + s
n3 = n3//10
return s if s else '0'