4

これがケースです: mylist = range(100)からsrc=1への不連続なパスがdest=99あり、配列pre[100]の各値は の最後を表しelemますpathelems問題は、pathdest~のすべてを取得するにはどうすればよいかということsrcです。このようにすることができます:

    path = []
    i = dst
    while i != src:
      path.append(i)
      i = pre[i]
    path.append(src)

しかし、おそらく1つのステートメントだけを使用する簡単な方法はありますか?

サンプル入力

dst, src = 3, 2
pre = [2, 0, 3, 1]

出力

[3, 1, 0, 2]   #It just have to follow the path with the indices from 3 to 2.

説明:

              ソース宛先
                vv
インデックス: 0 1 2 3
前: 2 0 3 1

dest 3 からは、前任者が 1 であるため、1 に移動します。
ノード 1 から、先行者は 0 であるため、0 に移動します。
ノード 0 からは前任者が 2 であるため、2 に移動します。
2 は src なので、これで完了です。
4

3 に答える 3