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

衡水网站建百度资源

衡水网站建,百度资源,做网站听的纯音乐,购物网站 怎么做Day 67 题目描述 思路 初次思路:此时还不了解什么是前缀树,尝试自己实现一下 由于我们需要快速定位前缀和字符串,于是我想到了使用hashset实现,tes用于存放字符串,prefixs存放前缀,获取前缀通过使用subst…

Day 67

题目描述

在这里插入图片描述

思路

初次思路:此时还不了解什么是前缀树,尝试自己实现一下
由于我们需要快速定位前缀和字符串,于是我想到了使用hashset实现,tes用于存放字符串,prefixs存放前缀,获取前缀通过使用substring进行拆分。

class Trie {Set<String>tes;Set<String>prefixs;public Trie() {tes=new HashSet<String>();prefixs=new HashSet<String>();num=new ArrayList<String>();}public void insert(String word) {if(tes.contains(word)){return;}else{tes.add(word);for(int i=0;i<=word.length();i++){String a=word.substring(0,i);prefixs.add(a);}}}public boolean search(String word) {return tes.contains(word);}public boolean startsWith(String prefix) {return prefixs.contains(prefix);}
}/*** 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);*/

学习前缀树后
前缀树的作用在于快速检索字符串的前缀,插入一个字符串,即为从根一次插入孩子节点,将字符串最后一个字符对应的节点标记结束节点,再插入另外一个相同前缀但最后n个字符不一样的字符串,那么在相同前缀的部分,不需要插入新的节点,直到第一个不同的字符,添加一个新的子节点。
这样做的好处,我们如果要获取两个字符串的前缀,只需要从根节点向下遍历,比较两个字符串,只要到某个节点出现了分支,则这个节点之前的节点就是两个字符的公共前缀。同时节约了存储空间
做法如下:

class Trie {public Trie[]child;//孩子节点,可能插入的是26个英文字母中的一个public boolean isend;//判断是否为一个字符串的结束 区分前缀和字符串public Trie() {child=new Trie[26];isend=false;}public void insert(String word) {Trie node=this;//根节点for(int i=0;i<word.length();i++){char a=word.charAt(i);int index=a-'a';//转化为序号if(node.child[index]==null){node.child[index]=new Trie();//创建为新孩子}node=node.child[index];//移动到下一个孩子}node.isend=true;//将结束标志置为true}public boolean search(String word) {Trie node=searchPrefix(word);if(node!=null&&node.isend){return true;}return false;}public boolean startsWith(String prefix) {Trie node=searchPrefix(prefix);if(node!=null){return true;}return false;}public Trie searchPrefix(String prefix){Trie node=this;for(int i=0;i<prefix.length();i++){char a=prefix.charAt(i);int index=a-'a';if(node.child[index]==null){//还没遍历完前缀就结束了 说明找不到return null;}node=node.child[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.dtcms.com/wzjs/277000.html

相关文章:

  • 网站备案ip查询系统站长工具忘忧草社区
  • wordpress不修改数据库更换域名英文seo兼职
  • 网站建设及报价格方案免费的外贸网站推广方法
  • 京东网站建设案例论文柳州网站建设哪里有
  • 汽车网站怎么做项目营销策划方案
  • 管理系统是网站吗重庆百度关键词优化软件
  • 中小型网站建设策划平谷头条新闻
  • 做课件用这15大网站优化手机流畅度的软件
  • 装修公司做网站好做吗qq营销
  • 语言互动网站建设百度电脑版下载安装
  • 网站建设方式可行性分析推广赚钱的微信小程序
  • 猪八戒网做动漫弹幕网站深圳谷歌推广公司
  • 做网站怎么赚钱的公司网站推广运营
  • 网站导航是怎么做的收录查询站长工具
  • 温州商城网站建设成人教育培训机构十大排名
  • 找有意者做阿里巴巴去哪个网站知乎营销平台
  • 企业网站怎做seo是什么单位
  • 织梦网站图片不显示营销策划方案怎么做
  • 唐尧文化 网站建设工作总结近一周的新闻大事热点
  • 做海南旅游网站的初衷seo辅助工具
  • 给个龙做罗拉的网站百度问答首页
  • 打开网页wordpress错误重庆seo网页优化
  • 如何做网站的登录日志指数基金怎么买才赚钱
  • 如何做微信网站建设成都seo专家
  • 会计信息网站建设的意思郑州百度网站快速优化
  • 吉林省做网站公司sem代运营费用
  • 医院做网站的费用多少郴州网络推广外包公司
  • 东莞企业建站收费产品推广百度seo关键词优化市场
  • flash网站链接怎么做怎么做好seo推广
  • 哪个网站简历做的好百度统计api