# 43. Multiply Strings ###### tags: `leetcode` `43` `medium` ## :memo: Question ![](https://i.imgur.com/WfV7My5.png) ## :memo: 題意 * 給你兩個數字 string,然後要你 return 兩個相乘的結果,但不能直接將 string 轉成 int。 ## :memo: My first solution * :medal: **思考一**: 看到這類的題目(算數字的而且說不能直接將 string 轉成 int),我會直接思考到 ord() 這個 function 去想。 ``` ord() Format: ord(c), c: character 傳入字元,回傳對應的Unicode字元。 ex. ord('a') = 97 ord('1') = 49 ``` * :medal: **思考二**: 那如果他如果給的數字是兩位數以上的 string 要怎麼去做運算,可以看到程式的第六行。 ```python= class Solution: def multiply(self, num1: str, num2: str) -> str: n1 = 0 for i in num1: n1 = n1 * 10 + ord(i) - ord("0") n2 = 0 for i in num2: n2 = n2 * 10 + ord(i) - ord("0") return str(n1 * n2) ``` ## :memo: bigO * 時間複雜度: O(len(nums1)+len(nums2)) * 空間複雜度: O(1)