【发布时间】:2022-08-04 10:24:59
【问题描述】:
这个难题是在我的一个面试任务中提出的,需要用打字稿来解决。我解决了它并以某种方式想分享它,因为在线没有解决方案
有函数ShortestPath(strArr) take strArr 这将是一个字符串数组
对非循环图进行建模。数组的结构如下:
数组中的第一个元素将是 数组中的节点数 N(点)作为字符串。接下来的 N 个元素将是可以是任何东西的节点 (A、B、C .. 砖街、主街 .. 等)。然后在第 N 个元素之后,数组中的其余元素 将是所有节点之间的连接。它们看起来像这样: (A-B、B-C .. Brick Street-Main Street .. 等)。虽然,可能根本不存在任何联系。
strArr 的一个例子可能是:
[\"4\",\"A\",\"B\",\"C\",\"D\",\"A-B\",\"B-D\",\"B-C\",\"C-D\"].
它可能有助于通过以下方式可视化图表 绘制节点及其连接。您的程序应该返回从第一个节点到 数组中的最后一个节点,用破折号分隔。所以在上面的例子中,输出应该是 A-B-D。这是另一个 例如 strArr 为 [\"7\",\"A\",\"B\",\"C\",\"D\",\"E\",\"F\",\"G \",\"A-B\",\"A-E\",\"B-C\",\"C-D\",\"D-F\",\"E-D\",\"F-G\"]。 这个数组的输出应该是 A-E-D-F-G。数组只会有一个最短路径。 如果第一个和最后一个节点之间不存在路径,则返回 -1。该数组至少有两个节点。 此外,例如连接 A-B 意味着 A 可以到达 B,B 可以到达 A。
标签: typescript algorithm graph shortest-path