从给定的列表或地图中找到转换器的最佳路径

Find the best path for a converter from the given list or map

问题: 您将获得 pdf 到文件转换器、文件到 unicode 转换器、unicode 到图像转换器等...

Eg: A-> b , b -> c , c-> d , d -> e
    Z-> g , g -> e.

在以上两种方式中,转换为 e 的最短有效路径是 z->g ,g -> e 应该被打印..

鉴于有许多路径通向同一个转换器,实现该解决方案的最佳方法是什么?

编辑:路径可能不相交 - A -> B 只是一个文件如何转换的表示 - 面试官只是想要一种找到最佳转换格式的优化方法。 假设以列表或映射的形式给出以下路径作为键值对-

jpg -> pdf,pdf -> 文本,文本 ->unicode,unicode -> 十六进制文件, jpg -> png , png -> 十六进制文件

找到将 jpg 转换为 hex 文件的最佳路径。输出应该是 jpg -> png , png -> hex 文件

根据你的例子:

  1. JPG -> PDF; PDF -> 文本;文本-​​>Unicode; UNICODE->HEX
  2. JPG->PNG; PNG->十六进制

这些在图表中表示 "Edges",因此您可以从这些路径中构建 adjacency list

如果您构建图表,它将显示为:

所以最短路径是 JPG -> PNG -> HEX

但为了以编程方式实现此目的,您需要执行 Breadth First Search 以保证从源节点到目标节点的最短路径。

您可以有多个没有共同节点的 connected components

搜索所有连接的组件以获得所需的路径。