短链接及关键字过滤ac自动机设计思路
=============:短链接设计思路:
核心:将长字符转为短字符串并建立映射关系,存储redis中。
1.使用crc32转换为Long
2.hashids将long encode为最短字符串。作为短连接后缀,
==========关键字过滤设计思路:
1.将关键字列表中每个关键字字符转换为字典树,利用ac自动机算法匹配.
--备注:
KMP算法:查找模式串中最长相同的前缀和后缀的最长长度。即next[j]的值,失配索引j-next[j]=移动位数.
字典树:将目标串按字符串起来,相同前缀则共享前缀,不相同,则从root,重新建立。可以用来判断一个串是否是p(模式串)中的前缀:
ac自动机:失配(fail)的指针指向字典树的最长后缀节点,如果没有就找第二长的后缀。如果再没有就指向root. 这样能够线性的去匹配所有的模式串.
短链接及关键字过滤ac自动机设计思路的更多相关文章
- HDU 4758 Walk Through Squares(AC自动机+DP)
		题目链接 难得出一个AC自动机,我还没做到这个题呢...这题思路不难想,小小的状压出一维来,不过,D和R,让我wa死了,AC自动机,还得刷啊... #include<iostream> # ... 
- HDU 2222 Keywords Search(AC自动机模版题)
		Keywords Search Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others ... 
- hdu 2222 Keywords Search    ac自动机模板
		题目链接 先整理一发ac自动机模板.. #include <iostream> #include <vector> #include <cstdio> #inclu ... 
- 【洛谷 P3041】 [USACO12JAN]视频游戏的连击Video Game Combos(AC自动机,dp)
		题目链接 手写一下AC自动机(我可没说我之前不是手写的) Trie上dp,每个点的贡献加上所有是他后缀的串的贡献,也就是这个点到根的fail链的和. #include <cstdio> # ... 
- P3796 【模板】AC自动机(加强版) 题解(Aho-Corasick Automation)
		题目链接 AC自动机 解题思路 AC自动机模板题. 刚学AC自动机,写一篇博客增强理解. AC自动机最关键的一点在于,\(fail\)失配指针的构造. \(fail\)指针指向的地方,是匹配出现错误后 ... 
- 【bzoj3940】[Usaco2015 Feb]Censoring  AC自动机
		题目描述 Farmer John has purchased a subscription to Good Hooveskeeping magazine for his cows, so they h ... 
- (转)两种高效过滤敏感词算法--DFA算法和AC自动机算法
		原文:https://blog.csdn.net/u013421629/article/details/83178970 一道bat面试题:快速替换10亿条标题中的5万个敏感词,有哪些解决思路? 有十 ... 
- 基于Redis的短链接设计思路
		[Markdown阅读][1] 今天上班的时候收到一个需要短链接的需求,之前的做法都是使用了新浪的短链接API(https://api.weibo.com/2/short_url/shorten.js ... 
- 【专题】字符串专题小结(AC自动机 + 后缀自动机)
		AC自动机相关: $fail$树: $fail$树上以最长$border$关系形成父子关系,我们定一个节点对应的串为根到该节点的路径. 对于任意一个非根节点$x$,定$y = fa_{x}$,那$y$ ... 
随机推荐
- Springboot和SpringMVC区别
			Springboot和SpringMVC区别----http://www.cnblogs.com/xdyixia/p/9279644.html 
- BNUOJ 26228 Juggler
			Juggler Time Limit: 3000ms Memory Limit: 32768KB This problem will be judged on HDU. Original ID: 42 ... 
- httpClient使用总结
			前记 最近有个需求,需要根据商品id获取商品详情: 首先想到的是在浏览器里输入url按回车就可以了:或者在linux中使用curl+url来发起一个http请求; 但如果是要在java程序中发出htt ... 
- 玛丽卡(codevs 1021)
			题目描述 Description 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. 因为她和他们不住在同一个城市,因此她开始准备她的长途旅行. 在这个国家中每两个城市之间最多只有一条路相通,并且我们 ... 
- Linux下汇编语言学习笔记67 ---
			这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ... 
- 快速幂取模模板 && 51nod 1013 3的幂的和
			#include <iostream> #include <cstdio> #include <cmath> #include <vector> #in ... 
- Critical Links-UVa796(无向图求桥)
			https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ... 
- 洛谷 P2064 奇妙的汽车
			P2064 奇妙的汽车 题目描述 你有着一辆奇妙的汽车,这辆汽车有着自动加速的功能.打个比方吧,第1天你驾驶着它可以行驶a路程,那么第2天你可以让它所走的路程增加到第1天的2~9倍(必须是其中一个整数 ... 
- Property 'sqlMapClient' is required
			继承SqlMapClientDaoSupport类的类里面添加如下代码 @Resource(name = "sqlMapClient") private SqlMapClient ... 
- spring mvc 访问静态资源404
			访问比如css js出现404提示 在spring的配置文件中加上如下代码即可 <!-- 静态资源404 --> <mvc:resources location="/res ... 
