Given a list of words sorted lexicographically in an alien language, infer the character order.
With words = ["wrt","wrf","er","ett","rftt"]:
- "wrt" < "wrf" means 't' < 'f' (first difference at index 2).
- "wrf" < "er" means 'w' < 'e'.
- "er" < "ett" means 'r' < 't'.
- "ett" < "rftt" means 'e' < 'r'.
Character order: "wertf".
If no valid ordering exists (cycle or invalid input), return "".
Constraints: words.length . word length .