【力扣日記】720 詞典中最長的單詞

題目描述

給出一個字符串數組words組成的一本英語詞典。從中找出最長的一個單詞,該單詞是由words詞典中其他單詞逐步添加一個字母組成。若其中有多個可行的答案,則返回答案中字典序最小的單詞。

若無答案,則返回空字符串。

算法思路

根據題意新建字典,值屬性爲集合,可以更好的查詢。

class Solution:
    def longestWord(self, words) -> str:
        d=dict(zip(range(1,31),[set()for i in range(31,61)]))
        words.sort(key=len)
        res=set()
        for i,j in enumerate(words):
            if len(j)==1:
                d[1].add(j)
                res.add(1)
            else:
                if j[:-1]in d[len(j)-1]:
                    d[len(j)].add(j)
                    res.add(len(j))
        return min(d[max(res)])

執行用時 :92 ms, 在所有 Python3 提交中擊敗了73.92%的用戶
內存消耗 :13.9 MB, 在所有 Python3 提交中擊敗了7.14%的用戶

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章