给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符,删除一个字符,替换一个字符
def mindistance(word1:str,word2:str): if not word1 or not word2:return len(word1)+len(word2) elif word1[0]==word2[0]:return mindistance(word1[1:],word2[1:]) else: inserted=1+mindistance(word1,word2[1:]) deleted=1+mindistance(word1[1:],word2) repalced=1+mindistance(word1[1:],word2[1:]) return min(inserted,deleted,repalced) s=mindistance("intention","execution") print(s)
-----------------------------------------------------------------------------------------------
解题思路:先判断单词长度是否为空,任意一个单词为空时,最少次数就是另外一个单词的长度。不为空时,开始对单词进行遍历比对,如果比对的字符相等,则次数就还是上次比对的结果,如果不相等,依次对该单词进行插入,删除,替换,然后返回这3种情况的最小值,就是最少次数。