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.
Solution(Array):
abs(idx1-idx2)
Code(C++):
class Solution { public: int shortestDistance(vector& words, string word1, string word2) { int n = words.size(); int idx1 = -1; int idx2 = -1; int dist = INT_MAX; for(int i=0;i<n;i++){ if(words[i] == word1) idx1=i; else if(words[i] == word2) idx2=i; if(idx1 != -1 && idx2 != -1) dist = min(dist,abs(idx1-idx2)); } return dist; } };
No comments :
Post a Comment