def guess(graph, question, choices):
MAX = 9999
SUBMAX = 999
ques_node = find_node(graph, question)
dists = []
for choice in choices:
choice_node = find_node(graph, choice)
if ques_node is None and choice_node is None:
dist = MAX
elif ques_node is None and choice_node is not None:
dist = SUBMAX
elif ques_node is not None and choice_node is None:
dist = MAX
else:
if nx.has_path(graph, ques_node, choice_node):
pl = len(nx.shortest_path(graph, ques_node, choice_node))
dist = pl
else:
dist = MAX
dists.append(dist)
answer, dist = min(enumerate(dists), key=lambda x: x[1])
max_dist = max(dists)
if dist == MAX:
return None
if dist == max_dist:
return None
return answer
评论列表
文章目录