リストのタプルを考えると、そこからすべての一意のパスを見つける必要があります。
Example I/P: [(1,2),(2,3),(3,4),(9,11),(4,5),(5,6),(6,7),(3,9)]
O/P: [[(1,2),(2,3),(3,4),(4,5),(5,6),(6,7)],[(1,2),(2,3),(3,9),(9,11)]]
タプルの2番目の要素が他のタプルの最初の要素と一致する場合、2つのタプルを接続できます。つまり、1つのタプルは(_,a)
で、他のタプルはのようになり(a,_)
ます。
このための最も効率的な実装は何ですか?それに適した最適なデータ構造を見つける必要があります。助言がありますか ?アルゴリズムを実行するタプルの数は40万以上になります。