当前位置: 首页 > news >正文

2010网站建设管理上海aso

2010网站建设管理,上海aso,做旅游的海报图片网站,seo承诺排名的公司LeetCode 208. 实现 Trie (前缀树) 题目描述 Trie(发音类似 “try”)或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补全和拼写检查。 请你实现 Trie 类&…

LeetCode 208. 实现 Trie (前缀树)

题目描述

Trie(发音类似 “try”)或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补全和拼写检查。
请你实现 Trie 类:
Trie() 初始化前缀树对象。
void insert(String word) 向前缀树中插入字符串 word 。
boolean search(String word) 如果字符串 word 在前缀树中,返回 true(即,在检索之前已经插入);否则,返回 false 。
boolean startsWith(String prefix) 如果之前已经插入的字符串 word 的前缀之一为 prefix ,返回 true ;否则,返回 false 。
示例:
输入
[“Trie”, “insert”, “search”, “search”, “startsWith”, “insert”, “search”]
[[], [“apple”], [“apple”], [“app”], [“app”], [“app”], [“app”]]
输出
[null, null, true, false, true, null, true]

思路

思路类似于一个26叉树,每一个节点存储的是一个字母。
插入就是沿着这个路径不断向下走,或创建下一层的26叉节点(仅当[i]下面一层的节点为空时创建)。当且仅当遍历到单词的最后一个字符时将isEnd标志位为true。
search和startwith实际上都可以依赖于一个前缀搜索方法“searchPrefix”。在前缀搜索方法中,对于给定的字符串word,从前缀树一层一层向下搜索,具体来说,用for循环遍历word,if(node.children[prefix.charAt(i)-‘a’]!=null){node=node.children[prefix.charAt(i)-‘a’]},如果出现这个孩子节点为null,则说明该前缀不存在,return null
search就是看返回结果是否为null&&该结果的isEnd标志位是否为True
startwith只需要判断返回结果是否为null就好

代码

class Trie {private Trie[] children;private boolean isEnd;public Trie() {children = new Trie[26];isEnd = false;}public void insert(String word) {Trie node = this;for (int i = 0; i < word.length(); i++){char c = word.charAt(i);int index = c - 'a';if (node.children[index] == null) {node.children[index] = new Trie();}node = node.children[index];// node移动到下面一层}node.isEnd = true;}public boolean search(String word) {Trie node = searchPrefix(word);return node != null && node.isEnd;}public boolean startsWith(String prefix) {return searchPrefix(prefix) != null;}private Trie searchPrefix(String prefix){Trie node = this;for (int i = 0; i < prefix.length(); i++){char c = prefix.charAt(i);int index = c - 'a';if (node.children[index] == null){return null;}node = node.children[index];}return node;}
}/*** Your Trie object will be instantiated and called as such:* Trie obj = new Trie();* obj.insert(word);* boolean param_2 = obj.search(word);* boolean param_3 = obj.startsWith(prefix);*/
http://www.wangmingla.cn/news/66502.html

相关文章:

  • 免费地方网站2023年广州疫情最新消息
  • 西安高端网站高端营销型网站
  • 有没有靠谱的推广平台seo教程seo教程
  • 模板企业快速建站百度seo可能消失
  • 网站设计排名北京电子商务专业就业方向
  • 怎么做房地产网站电商营销推广方法
  • 做网站大概需要多少费用推广赚钱一个2元
  • 广州科 外贸网站建设地推app接任务平台
  • 菜鸟怎样做自己的网站职业培训机构资质
  • 珠海品牌网站设计深圳网站设计制作
  • 做网站优化好的网络公司长沙网络推广只选智投未来
  • 可以在线做护理题的网站win7一键优化工具
  • 第寒网站建设百度搜索结果优化
  • 高新西区网站建设许昌网站seo
  • 成都建材网站建设网站优化公司哪个好
  • 淄博网站制作培训宁波pc营销型网站制作
  • 贵阳网站建设哪家广告推广计划
  • 一个虚拟主机可以做几个网站seo顾问赚钱吗
  • 做有关兼职网站的需求分析国家市场监管总局官网
  • 浙江杭州疫情最新情况seo的主要工作是什么
  • 校园网站建设简介品牌营销策划有限公司
  • 百度可以建网站吗线上宣传推广方案
  • 手机营销网站模板网络营销活动策划
  • 打开网站建设中是什么意思嘉兴网站建设方案优化
  • 网站开发的好处广州营销优化
  • 做外贸建网站需要多少钱小红书软文案例
  • 十堰网站制作产品营销策划方案怎么做
  • wordpress菜单底部导航杭州seo博客
  • 电子商务网站开发与应用论文做公司网站的公司
  • 好的网站开发自学网站seo建站网络公司