0244:最短单词距离 II(★)
目录
题目
请设计一个类,使该类的构造函数能够接收一个字符串数组。然后再实现一个方法,该方法能够分别接收两个单词,并返回列表中这两个单词之间的最短距离。
实现 WordDistanc 类:
WordDistance(String[] wordsDict)用字符串数组wordsDict初始化对象。int shortest(String word1, String word2)返回数组worddict中word1和word2之间的最短距离。
示例 1:
输入:
["WordDistance", "shortest", "shortest"]
[[["practice", "makes", "perfect", "coding", "makes"]], ["coding", "practice"], ["makes", "coding"]]
输出:
[null, 3, 1]
解释:
WordDistance wordDistance = new WordDistance(["practice", "makes", "perfect", "coding", "makes"]);
wordDistance.shortest("coding", "practice"); // 返回 3
wordDistance.shortest("makes", "coding"); // 返回 1
注意:
1 <= wordsDict.length <= 3 * 1041 <= wordsDict[i].length <= 10wordsDict[i]由小写英文字母组成word1和word2在数组wordsDict中word1 != word2-
shortest操作次数不大于5000
分析
0243 升级版,需要多次查询,考虑将每个单词的位置列表预先保存下来,节省查询时间。
解答
|
|
68 ms