thiagowfx's avatar

Β¬ just serendipity πŸ€ (not just serendipity)

LeetCode #243: Shortest Word Distance

β€’ 125 words β€’ 1 min β€’ updated

LeetCode #243: Shortest Word Distance:

python
class Solution:
    def shortestDistance(self, wordsDict: List[str], word1: str, word2: str) -> int:
        p1 = []  # [3]
        p2 = []  # [1, 4]

        for i , word in enumerate(wordsDict):
            if word == word1:
                p1.append(i)

            elif word == word2:
                p2.append(i)

        ans = float('inf')

        for a in p1:
            for b in p2:
                ans = min(ans, abs(a - b))

        return ans

Better:

python
class Solution:
    def shortestDistance(self, wordsDict: List[str], word1: str, word2: str) -> int:
        i1 = i2 = None
        ans = len(wordsDict) - 1

        for i, word in enumerate(wordsDict):
            if word == word1:
                i1 = i
            elif word == word2:
                i2 = i

            if i1 is not None and i2 is not None:
                ans = min(ans, abs(i1 - i2))

        return ans