我正在处理一个leetcode问题,问题是:
给出一个单词列表和两个单词word1和word2,返回列表中这两个单词之间的最短距离。
例如, 假设单词= ["练习","制作","完美","编码","制作"]
鉴于word1 =“coding”,word2 =“practice”,返回3。 鉴于word1 ="使",word2 ="编码",返回1.
到目前为止我的代码:
class Solution(object):
def shortestDistance(self, words, word1, word2):
count = 0
count2 = 0
for i in word1:
count+=1
for j in word2:
count2 += 1
if count > count2:
return (count-count2)
else:
return (count2-count1)
s = Solution()
print(s.shortestDistance(["practice", "makes", "perfect", "coding", "makes"], "coding", "practice")
我已经尝试过使用标签,我仍然无法找到正确的方法来对齐代码。
*该方法是缩进的,但由于某种原因,这里不会缩进只是fyi
答案 0 :(得分:0)
我不确定你所说的缩进问题 - 你的方法定义应该进一步缩进,但除此之外,它似乎有效(意味着它运行)。但根据我的理解,你的逻辑看起来是错误的。试试这个:
class Solution(object):
def shortestDistance(self, words, word1, word2):
count = 0
for word in words:
count += 1
if word == word1:
count1 = count
if word == word2:
count2 = count
if count1 > count2:
return (count1-count2)
else:
return (count2-count1)
s = Solution()
请注意,如果您有相同单词的副本(例如make和make),这会有一些有趣的行为 - 它会计算列表中最后一个单词的位置。但它应该更接近你想要做的事情。