# Leetcode 953. Verifying an Alien Dictionary

2 min readAug 16, 2021

--

[easy]

In an alien language, surprisingly they also use english lowercase letters, but possibly in a different `order`. The `order` of the alphabet is some permutation of lowercase letters.

Given a sequence of `words` written in the alien language, and the `order` of the alphabet, return `true` if and only if the given `words` are sorted lexicographicaly in this alien language.

Example 1:

`Input: words = ["hello","leetcode"], order = "hlabcdefgijkmnopqrstuvwxyz"Output: trueExplanation: As 'h' comes before 'l' in this language, then the sequence is sorted.`

Example 2:

`Input: words = ["word","world","row"], order = "worldabcefghijkmnpqstuvxyz"Output: falseExplanation: As 'd' comes after 'l' in this language, then words[0] > words[1], hence the sequence is unsorted.`

Example 3:

`Input: words = ["apple","app"], order = "abcdefghijklmnopqrstuvwxyz"Output: falseExplanation: The first three characters "app" match, and the second string is shorter (in size.) According to lexicographical rules "apple" > "app", because 'l' > '∅', where '∅' is defined as the blank character which is less than any other character (More info).`

Constraints:

• `1 <= words.length <= 100`
• `1 <= words[i].length <= 20`
• `order.length == 26`
• All characters in `words[i]` and `order` are English lowercase letters.

[Java]

1. create a map for alien alphbet orders
2. scan throw the String, if we find any word bigger than the next word, return false. Else return true at the end
3. Trick: be careful for the mapping, might get confuse

4. TC: O(n) — mapping is O(1); check the String[] length