时间限制:3秒
空间限制:32768K
热度指数:610
算法知识视频讲解
题目描述
有一篇文章内含多个单词,现给定两个单词,请设计一个高效算法,找出文中这两个单词的最短距离(即最少相隔的单词数,也就是两个单词在文章中位置的差的绝对值)。
给定一个string数组article,代表所给文章,同时给定文章的单词数n和待查找的两个单词x和y。请返回两个单词的最短距离。保证两个单词均在文中出现且不相同,同时保证文章单词数小于等于1000。
代码如下:
class Distance {
public:
int getDistance(vector<string> article, int n, string x, string y) {
int px=0,py=0,result=n;
for(int i=0;i<n;i++){
if(article[i]==x)
px=i;
else if(article[i]==y)
py=i;
if(px!=0&&py!=0)//确保x和y都至少找到了一个。
result=min(abs(px-py),result);
}
return result;
}
};
不懂的可以加我的QQ群:261035036(IT程序员面试宝典
群) 欢迎你的到来哦,看了博文给点脚印呗,谢谢啦~~