我在一次采访中被问到这个问题。假设你有一个有序的字典,并且给定了一个无序字符列表——你将如何按优先顺序排列这些字符?该词典包含保证出现所有 26 个字符的单词。但是,请注意字典的大小可能是任何值。字典可能只有几个单词,并且每个字符可能没有单独的部分,例如,以a
;开头的单词可能没有部分。尽管a
将作为另一个词的一部分出现,例如“bat”。
字典可能是“有序的”(/sarcasm),例如“zebra”、“apple”、“cat”、“crass”,如果给定列表 { a
, z
, r
},正确的顺序是 { z
, a
, r
}. 由于字典中“zebra”在“apple”之前,所以我们知道z
在之前a
出现。由于“apple”在“cat”之前,我们知道a
在之前c
。因为“cat”在“crass”之前,我们知道出现a
在 之前r
。这个排序离开c
并且r
存在不确定性,但是由于字母列表是 { a
, z
, r
},我们知道解决方案是 { z
, a
, r
}。