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 }