Menu
CoddyTech

Alien Dictionary

単語のリストが、あなたの知らないアルファベット順で並んでいます。小文字の英字26文字が、秘密の順序で並んでいます。単語は通常の方法で比較します。2つの単語が異なる最初の位置で、アルファベット順にどちらの文字が先に来るかによって順序が決まり、一方の単語がもう一方の単語の先頭部分と一致する場合は、短い単語が先になります。

単語に現れる文字を、アルファベット順に並べた1つの文字列として返してください。リストに当てはまる順序が複数ある場合は、通常の辞書順で最初に来るものを返してください。当てはまる順序がない場合は、"invalid"を返してください。

関数

alienOrder(words: string-array) → string
wordsstring-array
未知のアルファベット順に並べ替えられた単語
戻り値string
条件に合う最小の順序の文字、または「無効」

制約

  • 1 ≤ words.length ≤ 5000
  • 1 ≤ words[i].length ≤ 10
  • すべての単語は、小文字の英字のみで構成されています。
  • 同じ単語が複数回出現する場合があります。 必須の出力形式: <translation> [翻訳したコンテンツ] </translation>

例

入力
words = ["tea", "ten", "ate", "act", "cat"]
出力
"etacn"
説明
teaとtenは最初に異なる文字がaとnなので、aはnより前に来ます。他のペアからは、tがaより前、tがcより前、aがcより前ということが分かります。eについて言及している規則はないため、最小の順序ではeを最初に置き、次にt、続いてa、そしてその時点でどちらも制約のないcとnを置きます。cを先にします。

lock icon提出時に隠しテスト+20件

challenge icon

発展問題

当てはめの順序が唯一のものかどうか、どのように判断しますか?

コードをリセット
def alienOrder(words):
    # ここにコードを書いてください
テストケース

ケース1

ケース2

ケース3

入力

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

期待値

"etacn"