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

坪山网站建设策划哪家网络推广好

坪山网站建设策划,哪家网络推广好,网站怎么申请域名,给博彩网站做优化(Trie Tree)字典树 场景:在n个字符串中查找某个字符串。 暴力匹配,时间复杂度为O(nm),m为字符串平均长度,效率过低。 字典查找单词"fly",首先查找’f’,然后…

(Trie Tree)字典树

场景:在n个字符串中查找某个字符串。

暴力匹配,时间复杂度为O(nm),m为字符串平均长度,效率过低。

字典查找单词"fly",首先查找’f’,然后查找’l’,最后查找’y’,实现查找,字典树就是完成模拟查找过程。

例:

  1. be
  2. bee
  3. may
  4. man
  5. mom
  6. he

通过这6个单词构造字典树:
在这里插入图片描述

在每次单词的节点处设置标记,是否为单词结尾。

字典树应用:

  1. 字符串检索
  2. 统计单词出现的次数
  3. 前缀匹配
  4. 字符串排序

HDU1251
问题链接

问题:

Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己的前缀).

输入:

输入数据的第一部分是一张单词表,每行一个单词,单词的长度不超过10,它们代表的是老师交给Ignatius统计的单词,一个空行代表单词表的结束.第二部分是一连串的提问,每行一个提问,每个提问都是一个字符串.

注意:本题只有一组测试数据,处理到文件结束.

输出:

对于每个提问,给出以该字符串为前缀的单词的数量.

输入样例:

banana
band
bee
absolute
acmba
b
band
abc

输出样例:

2
3
1
0

使用Map:

import java.util.*;class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);//单词前缀MapMap<String, Integer> prefix = new HashMap<>();while (true) {String s = in.nextLine();if (s.equals("")) {break;}//空行单词表结束for (int i = s.length(); i > 0; i--) {//向map里添加数据String tmp = s.substring(0, i);prefix.put(tmp, prefix.getOrDefault(tmp, 0) + 1);}}while (in.hasNext()) {String query = in.nextLine();System.out.println(prefix.getOrDefault(query, 0));}}}

使用数组构造字典树结构体:


import java.util.*;class Main {static int[][]trie=new int[1000010][26];//数组定义字典树,存储下一个字符的位置static int[]num=new int[1000010];//以某个字符为前缀的单词数量static int pos=1;//当前新分配存储数量/*** 向字典树中插入单词*/public static void insert(char[]str){int p=0;for (int i = 0; i < str.length; i++) {int n=str[i]-'a';if(trie[p][n]==0){trie[p][n]=pos++;}p=trie[p][n];num[p]++;}}/**** @param   str 字符数组* @return  以字符串为前缀的单词数量*/public static int find(char[] str){int p=0;for (int i = 0; i < str.length; i++) {int n=str[i] - 'a';if(trie[p][n] == 0)return 0;p=trie[p][n];}return num[p];}public static void main(String[] args) {Scanner in = new Scanner(System.in);while (true) {String s = in.nextLine();if (s.equals("")) {break;}//空行单词表结束char[]chs=s.toCharArray();insert(chs);}while (in.hasNext()) {String query = in.nextLine();char[]chs=query.toCharArray();System.out.println(find(chs));}}}
http://www.yidumall.com/news/75585.html

相关文章:

  • 企业网站建设需要考虑内容重庆seo扣费
  • java做网站微信公众选件济南网站建设方案
  • 南京小程序外包公司seo是什么品牌
  • mysql 大型网站开发sem托管公司
  • 横岗做网站广告代理商
  • 常州网站建设企业网站南京百度网站快速优化
  • 做网站可以做哪些方面的网站建设网站定制
  • 网站做备案网络营销心得体会1000字
  • 微软云怎么做网站世界足球排名最新
  • 社交网站上的商城怎么做seo门户网站优化
  • 临沂网站建设中企动力谷歌广告
  • 网站开发的完整流程seo外包公司
  • 交友网站有人做加拿大28广州番禺最新发布
  • 化妆品网站建设策划方案淘宝seo排名优化的方法
  • 学校网站建设作用最有效的推广学校的方式
  • 加快实施创新驱动发展战略杭州seo网站推广
  • 防城港做网站的西安网站制作工作室
  • 建设投资公司网站网销怎么做才能做好
  • 网站模板开发平台怎么做优化网站关键词
  • 政府查询网站建设方案青岛网站建设策划
  • 搭建公司青岛网络优化厂家
  • 英文网站建站模板seo建站需求
  • 长沙网站改版百度seo白皮书
  • 怎么查询菠菜网站做没作弊新东方考研班收费价格表
  • 长宁网站建设重庆seo推广运营
  • 网站建设公司招人电商代运营公司十强
  • 宁波外贸网站建设和推广株洲网页设计
  • 博客可以放自己做的网站培训课程网站
  • app定制研发app开发上海seo优化bwyseo
  • 淘宝客怎么在微博做网站个人购买链接