考虑有一条从源到目的地的路径,但是这条路径被打乱了。
例如:
假设没有循环,我们能否在O(n)时间内从混乱的路径中恢复原始路径。
例如:
A B E F
B C A B
C D -> D E
D E C D
E F B C
假设没有循环,我们能否在O(n)时间内从混乱的路径中恢复原始路径。
A B E F
B C A B
C D -> D E
D E C D
E F B C
import sys
follow = dict(line.strip().split() for line in sys.stdin)
x = set(follow).difference(follow.itervalues()).pop()
while x:
print x
x = follow.get(x)
示例运行:
$ echo -e "E F\nA B\nD E\nC D\nB C" | python follow.py
A
B
C
D
E
F