首页 > 其他分享 >[模板题] - 208. 实现 Trie (前缀树)

[模板题] - 208. 实现 Trie (前缀树)

时间:2024-09-12 23:46:57浏览次数:8  
标签:node ch word Trie 208 self children 模板

题目链接 208. 实现 Trie (前缀树)
思路 模板题 - Trie树
题解链接 官方题解
关键点
时间复杂度 \(O(\sum_{i}\#\text{word}_{i})\)
空间复杂度 \(O(\sum_{i}\#\text{word}_{i})\)

代码实现:

class Trie:
    def __init__(self):
        self.children = [None] * 26
        self.isEnd = False
    
    def insert(self, word: str) -> None:
        node = self
        for ch in word:
            ch = ord(ch) - ord('a')
            if not node.children[ch]:
                node.children[ch] = Trie()
            node = node.children[ch]
        node.isEnd = True
    
    def search(self, word: str) -> bool:
        node = self._searchPrefix(word)
        return node is not None and node.isEnd
    
    def startsWith(self, prefix: str) -> bool:
        return self._searchPrefix(prefix) is not None
    
    def _searchPrefix(self, prefix) -> "Trie":
        node = self
        for ch in prefix:
            ch = ord(ch) - ord('a')
            if not node.children[ch]:
                return None
            node = node.children[ch]
        return node

标签:node,ch,word,Trie,208,self,children,模板
From: https://www.cnblogs.com/WrRan/p/18411346

相关文章

  • 魔怔模板
    线段树structsegmenttree{ structnode{ intl,r; longlongsum,tag;} T[maxn*4]; longlongrepair(intp,longlongk){ returnT[p].tag+=k,T[p].sum+=k*(T[p].r-T[p].l+1);} voiddowndata(intp){ repair(2*p,T[p].tag),repair(2*p+......
  • 【办公】会议纪要模板
    会议纪要:软件代码资料释放讨论会会议时间:[具体日期],[开始时间]-[结束时间]会议地点:[线上/线下具体地点,如Zoom会议号、公司会议室等]主持人:[主持人姓名及职位]参会人员:[参会人员姓名1],[职位][参会人员姓名2],[职位][参会人员姓名3],[职位]...(根据实际情况列出所有参会人员)......
  • pbootcms模板 后台升级程序后导致网站打不开 Parse error: syntax error, unexpec
    由于PHP版本不兼容导致的。PbootCMS3.2版本可能使用了PHP7.0或更高版本中引入的语法特性(如类型声明、返回类型声明等),而这些特性在PHP5.x版本中是不被支持的。因此,当您的服务器使用PHP5.x版本时,就会出现解析错误(如您所遇到的 Parseerror:syntaxerror,unexpected':......
  • pbootcms模板首页如何调用全站所有的文章
    在PbootCMS中,如果你想在模板首页调用全站所有的文章,你可以使用 {pboot:list} 标签,并通过设置 scode 属性为 * 来实现这一点。这表示不指定特定的栏目,而是调用整个站点的所有文章。下面是一个示例代码片段,展示了如何调用全站所有文章,并且限制每次只显示5篇文章:{pboot:......
  • pbootcms模板自动清理runtime缓存
    //自动会话清理脚本publicfunctionclean_session(){check_dir(RUN_PATH.'/archive',true);$data=json_decode(trim(substr(file_get_contents(RUN_PATH.'/archive/session_ticket.php'),15)));if($data->expire_time&&$......
  • pbootcms模板后台登录页面在哪里修改
    在PBootCMS中,如果你想修改后台登录页面的内容,比如文字和链接,可以通过编辑相应的HTML文件来实现。以下是具体的步骤:修改后台登录页面备份文件:在修改任何文件之前,务必先备份相关文件,以防万一操作失误可以恢复。找到登录页面文件:打开你的PBootCMS安装目录,找到apps/admin......
  • 洛谷题单指南-分治与倍增-P1226 【模板】快速幂
    原题链接:https://www.luogu.com.cn/problem/P1226题意解读:快速幂模版题。解题思路:1、分治法要计算a^b,可以对b分情况讨论:如果b是偶数,即b=2t,a^b=a^t*a^t如果b是奇数,即b=2t+1,a^b=a*a^t*a^t很容易用递归实现100分代码:#include<bits/stdc++.h>usingnamespa......
  • 信息化项目工作总结报告模板(第1章附目录)
    1项目概述1.1项目来源项目建设单位:市自然资源局;项目名称:X市土地二级市场网上交易系统建设项目;项目金额:XXX元;项目资金来源:政府财政资金。1.2建设目标按照“共建共治共享”的基本原则和“统筹规划、分步实施、业务属地管理、系统持续运营”的基本思路,结合X市土地二级市......
  • pbootcms模板指定栏目标签调用
    指定栏目标签适用范围:全站任意地方均可使用标签作用:用于调导航菜单栏目列表,对应后台的“基础内容>内容栏目”1、指定栏目列表{pboot:sortscode=*}<ahref="[sort:link]">[sort:name]</a>{/pboot:sort} 控制参数:scode=* 栏目编码,必填,用于控制输出的栏目,可以同时输......
  • pbootcms模板如何实现产品置顶
    要在PBootCMS中实现产品的置顶功能,你可以按照以下步骤操作:定位到模板文件:打开你的网站后台。导航到模板管理部分,找到templatesdefault目录下的index.html文件。修改产品列表查询参数:在index.html文件中找到展示产品列表的部分。修改产品列表的查询参数,将order=sorti......