Alien Dictionary
Learn how to solve the 'Alien Dictionary' problem. This detailed resource details brute force and optimized approaches.
Problem Statement
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
Examples
words = ["wrt","wrf","er","ett","rftt"]
"wertf"
From the sorted words, we can derive the relationships: 'w' -> 'e', 'r' -> 't', 't' -> 'f', etc.
words = ["z","x"]
"zx"
From "z" and "x", we know 'z' comes before 'x'.
words = ["z","x","z"]
""
The order is invalid because 'z' comes before 'x' and 'x' comes before 'z'.
Need a Hint?
Edge Cases to Watch
- Empty list or null input variables
- Single item lists/arrays
- Extremely large input bounds causing integer or stack overflow
Ready to Solve?
Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.