924. 单词最短距离

Posted yunxintryyoubest

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了924. 单词最短距离相关的知识,希望对你有一定的参考价值。

924. 单词最短距离

中文English

给出一个单词列表和两个单词单词1,单词2,返回列表中这两个单词之间的最短距离。

样例

样例 1:

输入:["practice", "makes", "perfect", "coding", "makes"],"coding","practice"
输出:3
解释:index("coding") - index("practice") = 3

样例 2:

输入:["practice", "makes", "perfect", "coding", "makes"],"makes","coding"
输出:1
解释:index("makes") - index("coding") = 1

注意事项

您可以假定单词1不等于单词2,而单词1和单词2在列表中都存在

class Solution:
    """
    @param words: a list of words
    @param word1: a string
    @param word2: a string
    @return: the shortest distance between word1 and word2 in the list
    """
    ‘‘‘
    1.word1和word2可能都存在多个的情况,所以需要两层循环,取出所有可能的距离。(取出列表全部重复元素的索引)
    2.初始化res,将两个单词距离全部append到res里面,返回最小值
    ‘‘‘
    def shortestDistance(self,words,word1,word2):
        res = []
        l_word1 = [index for index,value in enumerate(words) if value == word1]
        l_word2 = [index for index,value in enumerate(words) if value == word2]

        #此时求出全部的距离,append到res里面
        for i in l_word1:
            for j in l_word2:
                s = abs(i - j)
                res.append(s)
        return min(res)

 

 

以上是关于924. 单词最短距离的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 面试题 17.11. 单词距离 / 1021. 删除最外层的括号 / 468. 验证IP地址

简言翻译记忆的原理:用动态规划算法求解最短编辑距离

关于代码片段的时间复杂度

使用 C++ 反转句子中的每个单词需要对我的代码片段进行代码优化

LeetCode 面试题17.11.单词距离

片段(Java) | 机试题+算法思路+考点+代码解析 2023