Top 150 InterviewЛегко

Alien Dictionary

Detailed guide and Python implementation for the 'Alien Dictionary' problem.

Постановка задачи

Легко

There is a new alien language that uses the English alphabet. However, the order of the letters is unknown to you.

You are given a list of strings words from the alien language's dictionary, where the strings in words are sorted lexicographically according to the rules of this new language.

Return a string of the unique letters in the new alien language sorted in lexicographically increasing order by the new language's rules. If there is no solution, return "". If there are multiple solutions, return any of them.

Write a function alienOrder(words: List[str]) -> str.

Ограничения
  • 1 <= len(words) <= 100
  • 1 <= len(words[i]) <= 100
  • words[i] consists of lowercase English letters

Примеры

Example 1
Input
words = ["wrt","wrf","er","ett","rftt"]
Output
"wertf"
Explanation

From the sorted words, we can derive the relationships: 'w' -> 'e', 'r' -> 't', 't' -> 'f', etc.

Example 2
Input
words = ["z","x"]
Output
"zx"
Explanation

From "z" and "x", we know 'z' comes before 'x'.

Example 3
Input
words = ["z","x","z"]
Output
""
Explanation

The order is invalid because 'z' comes before 'x' and 'x' comes before 'z'.

Need a Hint?
Consider using Advanced Graphs-specific data structures like sets or heaps.
Edge Cases to Watch
  • Empty input structures
  • Single element inputs
  • Large numerical bounds

Готовы решить?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Открыть в редакторе
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Рекомендуемые ресурсы Python

Расширьте свои знания с помощью соответствующих интерактивных руководств, шпаргалок и сравнений кода.

Учебник по Python

Циклы Python

Узнайте, как использовать циклы Python для перебора данных. Освойте циклы for, while, прерывание, продолжение и лучшие практики работы с циклами с помощью интерактивных примеров.

Посмотреть ресурс
Практическое руководство

Как перебирать словарь в Python

Узнайте, как выполнять цикл или перебирать словарь Python. Откройте для себя методы перебора ключей, значений и пар «ключ-значение» с помощью понятных и работоспособных примеров.

Посмотреть ресурс
Шпаргалка

Шпаргалка по словарным методам Python

Изучите словарные методы Python. Полное справочное руководство по вставке, извлечению, обновлению и проверке пар ключ-значение.

Посмотреть ресурс
Сравнение языков

Python против JavaScript: какой язык программирования лучше?

Всестороннее сравнение Python и JavaScript. Изучите синтаксические различия, производительность, варианты использования (серверная и клиентская части) и примеры кодирования.

Посмотреть ресурс