从给定的列表或地图中找到转换器的最佳路径
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 文件
根据你的例子:
- JPG -> PDF; PDF -> 文本;文本->Unicode; UNICODE->HEX
- JPG->PNG; PNG->十六进制
这些在图表中表示 "Edges",因此您可以从这些路径中构建 adjacency list。
如果您构建图表,它将显示为:
所以最短路径是 JPG -> PNG -> HEX
但为了以编程方式实现此目的,您需要执行 Breadth First Search 以保证从源节点到目标节点的最短路径。
您可以有多个没有共同节点的 connected components。
搜索所有连接的组件以获得所需的路径。
问题: 您将获得 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 文件
根据你的例子:
- JPG -> PDF; PDF -> 文本;文本->Unicode; UNICODE->HEX
- JPG->PNG; PNG->十六进制
这些在图表中表示 "Edges",因此您可以从这些路径中构建 adjacency list。
如果您构建图表,它将显示为:
所以最短路径是 JPG -> PNG -> HEX
但为了以编程方式实现此目的,您需要执行 Breadth First Search 以保证从源节点到目标节点的最短路径。
您可以有多个没有共同节点的 connected components。
搜索所有连接的组件以获得所需的路径。