• Shortest Word Distance 解答


    Question

    Given a list of words and two words word1 and word2, return the shortest distance between these two words in the list.

    For example,
    Assume that words = ["practice", "makes", "perfect", "coding", "makes"].

    Given word1 = “coding”word2 = “practice”, return 3.
    Given word1 = "makes"word2 = "coding", return 1.

    Note:
    You may assume that word1 does not equal to word2, and word1 and word2 are both in the list.

    Solution

    双指针的方法。last_word1为word1最后一次出现的坐标。last_word2为word2最后一次出现的坐标。所以当last_word1变化时,我们计算last_word1 - last_word2 + 1,并且和当前最小值比较更新。Same to last_word2.

     1 class Solution(object):
     2     def shortestDistance(self, words, word1, word2):
     3         """
     4         :type words: List[str]
     5         :type word1: str
     6         :type word2: str
     7         :rtype: int
     8         """
     9         last_word1 = -1
    10         last_word2 = -1
    11         length = len(words)
    12         result = length
    13         for i in range(length):
    14             if words[i] == word1:
    15                 last_word1 = i
    16                 if last_word2 != -1:
    17                     result = min(result, last_word1 - last_word2)
    18             elif words[i] == word2:
    19                 last_word2 = i
    20                 if last_word1 != -1:
    21                     result = min(result, last_word2 - last_word1)
    22         return result
  • 相关阅读:
    elasticsearch
    CentOS6.9安装Logstash
    CentOS6.9安装Filebeat监控Nginx的访问日志发送到Kafka
    openresty capture
    CentOS6.9安装socat
    CentOS挂Windows的NFS备忘
    openCV 备忘
    rabbitmq更换数据文件和日志文件的存放位置
    根据某个文件或文件夹自制rpm包
    checkinstall打包工具使用
  • 原文地址:https://www.cnblogs.com/ireneyanglan/p/4935017.html
Copyright © 2020-2023  润新知