On this page
algoframe

前缀树算法详解

About 241 wordsLess than 1 minute

algotriechat-algo

2024-02-21

最近在刷力扣的时候,有一道题:14. 最长公共前缀, 可以用python3的特殊api来求解,像是用zip函数,将可迭代对象对应的元素打包成一个个元组,然后返回元组组成的列表。我们就可以根据元组的长度来判断是否前缀是否相同。

比如zip(['flower', 'flow', 'flight']) 返回的结果是[('f', 'f', 'f'),('l', 'l', 'l'),('o', 'o', 'i'),('w', 'w', 'g')]

class Solution:
    def longestCommonPrefix(self, strs: List[str]) -> str:
        ans = zip(*strs)  # List[Tuple]
        s = ''
        for i in ans:
            if len(set(i)) == 1:
                s += i[0]
            else:
                break  # 后面能匹配上也不要了
        return s

但是看很多题解都是使用trie树来求解的,这里就来仔细的学习了解一下。 参考labuladong网站文章: 前缀树算法模板秒杀五道算法题