go, clean code, 4ms, beats 100%
\nfunc longestWord(words []string) string {\n\tsort.Strings(words)\n    var ret string\n\tset := make(map[string]struct{}, len(words))\n\tfor _, word := range w
```\nfunc longestWord(words []string) string {\n\tsort.Strings(words)\n    var ret string\n\tset := make(map[string]struct{}, len(words))\n\tfor _, word := range words {\n\t\tif _, ok := set[word[:len(word)-1]]; !ok && len(word) != 1 {\n\t\t\tcontinue\n\t\t}\n\t\tset[word] = struct{}{}\n\t\tif len(word) > len(ret) {\n\t\t\tret = word\n\t\t}\n\t}\n\treturn ret\n}\n```
[]