Menu
CoddyTech

Alien Dictionary

一组单词按照一种你不知道的字母顺序排列:26 个小写英文字母按某种秘密顺序排列。单词的比较规则与通常相同。两个单词从第一个不同的位置开始比较;如果一个单词是另一个单词的开头,则较短的单词排在前面。

按字母顺序返回这些单词中出现过的字母,组成一个字符串。如果有多种顺序都符合要求,则返回按普通字典序排列最靠前的顺序。如果不存在符合要求的顺序,则返回 "invalid"。

函数

alienOrder(words: string-array) → string
wordsstring-array
按未知字母表排序的单词
返回值string
按符合条件的最小顺序排列字母,或“无效”

约束条件

  • 1 ≤ words.length ≤ 5000
  • 1 ≤ words[i].length ≤ 10
  • 每个单词都只包含小写英文字母。
  • 同一个词可能会出现多次。

示例

输入
words = ["tea", "ten", "ate", "act", "cat"]
输出
"etacn"
解释
tea 在 ten 之前,因此 a 在 n 之前。其他几对分别表示 t 在 a 之前、t 在 c 之前,以及 a 在 c 之前。没有规则提到 e,所以最小的顺序以它开头:e、t、a、c、n。
challenge icon

进阶

你怎么判断这个拟合顺序是不是唯一的?

重置代码
def alienOrder(words):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

words = ["tea", "ten", "ate", "act", "cat"]

预期输出

"etacn"