---
# System prepended metadata

title: 43. Multiply Strings
tags: [leetcode, '43', medium]

---

# 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)