题目
有一篇文章内含多个单词,现给定两个单词,请设计一个高效算法,找出文中这两个单词的最短距离(即最少相隔的单词数,也就是两个单词在文章中位置的差的绝对值)。
给定一个string数组article,代表所给文章,同时给定文章的单词数n和待查找的两个单词x和y。请返回两个单词的最短距离。保证两个单词均在文中出现且不相同,同时保证文章单词数小于等于1000。
思路
遍历数组,记录下所有x,y的出现的下标,然后对x和y 的所有下标做差,找出最小的绝对值距离。
代码
class Distance:
def getDistance(self, article, n, x, y):
xx = []
yy = []
for i in range(0, n):
if article[i] == x :
xx.append(i)
if article[i] == y :
yy.append(i)
min = 1000
for i in xx:
for j in yy:
if abs(i-j)< min:
min = abs(i-j)
return min