随笔分类 -  字典树

摘要:题意 给你一堆字符串,要求找到每个字符串的唯一标识前缀,输出原字符串和唯一标识前缀。 思路 用这堆字符串建字典树,对于每个字符串,我们进行一次查找,若当前位置的cnt为1,就代表从根到现在的位置能唯一标识。 AC代码 #include<iostream> #include<stdio.h> #inc 阅读全文
posted @ 2020-07-29 11:16 艾尔夏尔-Layton 阅读(96) 评论(0) 推荐(0) 编辑
摘要:题意 给你若干个字符串,要求你找出符合条件的字符串并输出,条件是该字符串拆成两段后,两段均出现过。 思路 建字典树,然后遍历字符枚举端点,对左右两段字符串在字典树上进行查询。若均能找到则该字符串为符合题意的字符串。 这题的插入不能每个字符的cnt都++,而要在末尾字符++,因为题意要求是拆分后的字符 阅读全文
posted @ 2020-07-28 21:38 艾尔夏尔-Layton 阅读(111) 评论(0) 推荐(0) 编辑
摘要:题意 给你多个单词构建一个单词本,再给你多个单词,查询每个单词在单词本里作为单词本里单词的前缀出现了多少次。 思路 裸的字典树题,构建的时候插入,查询的时候直接查就行。 AC代码 #include<iostream> #include<stdio.h> #include<string.h> usin 阅读全文
posted @ 2020-07-27 22:56 艾尔夏尔-Layton 阅读(85) 评论(0) 推荐(0) 编辑
摘要:题意 给你n个数字,若这些字符串中有字符串成为一个其他字符串的前缀,输出no,否则输出yes。 思路 考虑用字典树存所有字符串,然后遍历一遍,对当前字符串在建好的字典树上查找,若在结尾处的cnt值不等于1,则证明从根到当前字符至少是另一个字符的前缀,符合题意的NO。 AC代码 动态申请,poj会T 阅读全文
posted @ 2020-07-27 22:36 艾尔夏尔-Layton 阅读(100) 评论(0) 推荐(0) 编辑
摘要:简述 字典树又称tire树,其为哈希树的变种,哈希树存的是键值字典树存的是字符。字典树用于统计,排序和保存大量字符,常用于搜索引擎,其本质是用字符串的公共前缀来优化查询。其查询过程就像我们在查新华字典,查询时间为O(len)。 树的样子 假设我们要存以下字符串:"to","tea","ted","t 阅读全文
posted @ 2020-07-27 00:35 艾尔夏尔-Layton 阅读(576) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示