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