跳到主要内容

面试题17.11.单词距离

链接:面试题17.11.单词距离
难度:Medium
标签:数组、字符串
简介:有个内含单词的超大文本文件,给定任意两个不同的单词,找出在这个文件中这两个单词的最短距离(相隔单词数)。

题解 1 - cpp

  • 编辑时间:2022-05-27
  • 执行用时:96ms
  • 内存消耗:57.9MB
  • 编程语言:cpp
  • 解法介绍:一次遍历。
class Solution {
public:
int findClosest(vector<string>& words, string word1, string word2) {
int p[2], ans = INT_MAX, n = words.size();
p[0] = p[1] = -1;
for (int i = 0; i < n; i++) {
string word = words[i];
int f = -1;
if (word == word1) f = 0;
if (word == word2) f = 1;
if (f == -1) continue;
p[f] = i;
if (p[0] == -1 || p[1] == -1) continue;
ans = min(ans, abs(p[0] - p[1]));
}
return ans;
}
};