[Swift]LeetCode243.最短单词距离 $ Shortest Word Distance

时间:2022-01-12 06:17:59

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.


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

例如,

假设words=[“practice”、“makes”、“perfect”、“coding”、“makes”]。

给定word1=“coding”,word2=“practice”,返回3。

给定word1=“makes”,word2=“coding”,返回1。

注:

您可以假定word1不等于word2,word1和word2都在列表中。


 1 class Solution {
 2     func shortestDistance(_ words: [String],_ word1:String,_ word2:String) -> Int {
 3         var idx:Int = -1
 4         var res:Int = Int.max
 5         for i in 0..<words.count
 6         {
 7             if words[i] == word1 || words[i] == word2
 8             {
 9                 if idx != -1 && words[idx] != words[i]
10                 {
11                     res = min(res, i - idx)
12                 }
13                 idx = i
14             }
15         }
16         return res
17     }
18 }