1

我正在尝试构建一个解决方案来正确排序一组值对,以便它们以正确的顺序结束。考虑一下 Python 中的这个例子:

theArray = [['Dempster St','Main St'],['Dempster St','Church St'],['Emerson St','Church St']]

我需要订购数组,使其最终看起来像这样:

theArray = [['Emerson St','Church St'],['Church St','Dempster St'],['Dempster St','Main St']]

一些考虑:

  • 不能保证每对中的顺序指向相同的方向。例如:在上面的示例中,第二个数组元素的对的顺序指向与其余元素相反的方向(Dempster 到 Church 而不是 Church 到 Dempster)

  • 应该构建代码以便它可以在 Python 和 C 中使用,因此理想情况下应该在没有任何特定于语言的技巧的情况下完成

  • 最后,构建最终数组的顺序无关紧要,只要元素遵循正确的顺序即可。例如,下面的解决方案也可以工作:

    theArray = [['Main St','Dempster St'],['Dempster St','Church St'],['Church St','Emerson St']]

想法?

4

1 回答 1

0

我设法使它工作。我通过使用多个嵌套循环相互迭代每对的每个元素 - 这样我就可以检查它们的唯一性(为了做到这一点,每当一个项目被发现不止一次时,我都会增加一个关联的变量,比如引用计数) ; 最后,计数最少的两个元素是路线的开始和结束。从那里很容易找到剩余的连接。

于 2013-02-10T13:44:54.250 回答