
Well. 这一题和Shortest Word Distance只有一个区别就是word1可以等于word2,此时要找的就是两个连续的最短的距离,而不是0。所以其实答案就是在Shortest Word Distance上面多加一个特别情况就是word1 = word2就可以了。直接上代码吧,没啥难的。
public int shortestWordDistance(String[] words, String word1, String word2) {
int idx1 = -1, idx2 = -1, result = Integer.MAX_VALUE;
boolean sameWord = word1.equals(word2);
for (int i = 0; i < words.length; i++) {
if (sameWord && words[i].equals(word1)) {
idx1 = idx2;
idx2 = i;
} else if (words[i].equals(word1)) {
idx1 = i;
} else if (words[i].equals(word2)) {
idx2 = i;
}
if (idx1 != -1 && idx2 != -1) {
result = Math.min(result, Math.abs(idx1 - idx2));
}
}
return result;
}
本文介绍了一个简单的算法,用于计算字符串数组中两个指定单词之间的最短距离,特别处理了当两个单词相同时的情况。
1586

被折叠的 条评论
为什么被折叠?



