重新排序数组中的值对,使它们按顺序排列

时间:2013-02-09 20:39:39

标签: python c sorting

我正在尝试构建一个解决方案来正确排序一对值对,以便它们以正确的顺序结束。在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']]

想法?

1 个答案:

答案 0 :(得分:0)

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