Skip to content

Latest commit

 

History

History
37 lines (29 loc) · 944 Bytes

243. Shortest Word Distance.md

File metadata and controls

37 lines (29 loc) · 944 Bytes

243. Shortest Word Distance

https://leetcode.com/problems/shortest-word-distance/

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

Example: Assume that words = ["practice", "makes", "perfect", "coding", "makes"].

Input: word1 = “coding”, word2 = “practice”
Output: 3
Input: word1 = "makes", word2 = "coding"
Output: 1

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

代码

class Solution:
    def shortestDistance(self, words: List[str], word1: str, word2: str) -> int:
        # O(N)
        i1,i2=-1,-1
        ans=len(words)
        for i,w in enumerate(words):
            if w==word1:
                i1=i
            elif w==word2:
                i2=i
            if i1!=-1 and i2!=-1:
                ans=min(ans,abs(i1-i2))
        return ans