1. from collections import defaultdict
    2. class Solution:
    3. def multiply(self, num1: str, num2: str) -> str:
    4. res = 0
    5. for i in range(1, len(num1) + 1):
    6. for j in range(1, len(num2) + 1):
    7. res += int(num1[-i]) * int(num2[-j]) * 10 ** (i + j - 2)
    8. return str(res)
    9. def multiply(self, num1: str, num2: str) -> str:
    10. res = 0
    11. for (i, n1) in enumerate(map(int, num1[::-1])):
    12. for (j, n2) in enumerate(map(int, num2[::-1])):
    13. res += n1 * n2 * 10 ** (i + j)
    14. return str(res)
    15. def multiply(self, num1: str, num2: str) -> str:
    16. tmp = defaultdict(lambda: 0)
    17. for (i, n1) in enumerate(map(int, num1[::-1])):
    18. for (j, n2) in enumerate(map(int, num2[::-1])):
    19. tmp[i + j] += n1 * n2
    20. return str(sum(num * 10 ** k for k, num in tmp.items()))
    21. if __name__ == '__main__':
    22. print(Solution().multiply("2", "3"))
    23. print(Solution().multiply("123", "456"))