720. 詞典中最長的單詞
給出一個字元串數組 words 組成的一本英語詞典。傳回 words 中最長的一個單詞,該單詞是由 words 詞典中其他單詞逐漸添加一個字母組成。
思路:将words放入集合中。對words中的詞進行排序,按長度優先,長度相同按照單詞順序。
然後對排序後的單詞進行周遊。如果該單詞所有的字首都在集合中,則輸出該單詞。
class Solution(object):
def longestWord(self, words):
wordset = set(words)
words.sort(key = lambda c: (-len(c), c))
for word in words:
if all(word[:k] in wordset for k in range(1, len(word))):
return word
return ""
知識點:
數組排序:
(a,b,c) < (x,y,z) 多個元素會按順序比較,依次比較a<x b<y c<z 。
進而可以利用元組實作按多個方面排序。
通過給出 key 讓數組按合适的方式升序排序。(指定reversed=True可以實作降序)
例如:
words.sort(key = lambda c: (-len(c), c))