🖥 Умножение строк

🖥 Умножение строк

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'


Report Page