弄清楚字符列表的顺序

时间:2013-11-17 01:05:53

标签: algorithm data-structures

英语有26个字符(a,b,c,d,...,z),它们的顺序为b behind ac behind b等。

假设我们有另一种语言。在语言中,我们也有很多字符。所有的人都有订单,就像英语中的字符一样。

但是,我们还不知道所有字符的总顺序。

我们给出了一个单词列表,在每个单词中,字符已经被排序。

请使用数据结构和算法来导入所有字符的总顺序。

例如,

我们有字符@£$%。我们不知道这些语言的顺序。

我们获得了一个单词列表

£ % @ % $ @ £ $

然后我们可以获得总订单£ $ @ %

1 个答案:

答案 0 :(得分:1)

构造一个包含所有字符作为顶点的有向图。

在每个字符中为每个字符创建一条边,直接跟在任何单词中的该字符之后。例如,如果您有一个单词@ % ^,则您有边@ -> %% -> ^

在图表上运行topological sort以获得正确的订单。