我正在尝试构建一个解决方案来正确排序一对值对,以便它们以正确的顺序结束。在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 to Church而不是Church to Dempster)
应该构建代码,以便它可以在Python和C中使用,所以理想情况下应该在没有任何语言特定技巧的情况下完成
最后,只要元素遵循正确的顺序,最终数组的构建顺序无关紧要。例如,下面的解决方案也可以起作用:
theArray = [['Main St','Dempster St'],['Dempster St','Church St'],['Church St','Emerson St']]
想法?
答案 0 :(得分:0)
我设法让它发挥作用。我通过使用多个嵌套循环迭代每对中的每个元素 - 这样我就可以检查它们的唯一性(为了做到这一点,每当一个项被多次发现时,我会增加一个关联变量,比如refcount) ;最后,计数最少的两个元素是路径的开始和结束。从那里可以很容易地找到剩余的连接。