Please solve the programming task below using a self-contained code snippet in a markdown code block.

Given two strings word1 and word2, return the minimum number of operations required to convert word1 to word2.
You have the following three operations permitted on a word:

Insert a character
Delete a character
Replace a character

 
Please complete the following python code precisely:
```python
class Solution:
    def minDistance(self, word1: str, word2: str) -> int:
```