当前位置:  开发笔记 > 编程语言 > 正文

Python - 找到最长的路径

如何解决《Python-找到最长的路径》经验,为你挑选了1个好方法。

该函数将字典作为输入,我想在字典中找到最长路径的长度.基本上,如果在字典中,key2与value1匹配,key3与value2匹配,依此类推,则计为路径.例如:

{'a':'b', 'b':'c', 'c':'d'}

在上面的例子中,长度应该是三.我怎么做到这一点?或者更具体地说,我如何比较键值?(它可以是任何东西,字符串,数字等,而不仅仅是数字)

提前谢谢了!



1> DYZ..:

我会将字典视为有向非循环图(DAG)中的边列表,并使用该networkx模块在图中找到最长路径:

import networkx as nx

data = {'a':'b', 'b':'c', 'c':'d'}

G = nx.DiGraph()
G.add_edges_from(data.items())
try:
  path = nx.dag_longest_path(G)
  print(path)
  # ['a', 'b', 'c', 'd']

  print(len(path) - 1)
  # 3
except nx.exception.NetworkXUnfeasible: # There's a loop!
  print("The graph has a cycle")

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有