★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公衆號:山青詠芝(shanqingyongzhi)
➤博客園地址:山青詠芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:http://www.javashuo.com/article/p-kinbylzq-mb.html
➤若是連接不是山青詠芝的博客園地址,則多是爬取做者的文章。
➤原文已修改更新!強烈建議點擊原文地址閱讀!支持做者!支持原創!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★html
This is a follow up of Shortest Word Distance. The only difference is now word1 could be the same as word2.git
Given a list of words and two words word1 and word2, return the shortest distance between these two words in the list.github
word1 and word2 may be the same and they represent two individual words in the list.微信
For example,
Assume that words = ["practice", "makes", "perfect", "coding", "makes"].spa
Given word1 = 「makes」, word2 = 「coding」, return 1.
Given word1 = "makes", word2 = "makes", return 3.code
Note:
You may assume word1 and word2 are both in the list.htm
這是最短單詞距離的後續行動。如今惟一的區別是word1能夠與word2相同。blog
給定單詞列表以及單詞1和單詞2,返回列表中這兩個單詞之間的最短距離。get
word1和word2可能相同,它們表明列表中的兩個單獨單詞。博客
例如,
假設words=[「practice」、「makes」、「perfect」、「coding」、「makes」]。
給定word1=「makes」,word2=「coding」,返回1。
給定word1=「makes」,word2=「makes」,返回3。
注:
您能夠假定word1和word2都在列表中。
1 class Solution { 2 func shortestWordDistance(_ 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 && (word1 == word2 || words[i] != words[idx]) 10 { 11 res = min(res, i - idx) 12 } 13 idx = i 14 } 15 } 16 return res 17 } 18 }