KMP模板
2016-05-04 23:18
316 查看
a是主串,b是模式串,ans是模式串在主串的出现次数。
int j = 0, ans = 0, m = strlen(b+1), n = strlen(a+1); nxt[1] = 0; for(int i = 2; i <= m; i++) { while(j && b[j+1] != b[i]) j = nxt[j]; if(b[i] == b[j+1]) j++; nxt[i] = j; } j = 0; for(int i = 1; i <= n; i++) { while(j && a[i] != b[j+1]) j = nxt[j]; if(a[i] == b[j+1]) j++; if(j == m) j = nxt[j], ans++; }
相关文章推荐
- LeetCode 127. Word Ladder
- 现成的emacs配置
- iOS自定义控件(@IBDesignable与@IBInspectable)
- Android进程
- 凸优化笔记
- VBA获取excel行和列
- 关于百度地图的总结
- Android里面的大BOSS---Context
- 25.Maven 的单模块 / 多模块之 Spring MVC + Spring + Spring Data JPA 项目(基于 IntelliJ IDEA) - IntelliJ IDEA 使用教程
- 两个栈实现一个队列
- mysql创建用户的三种方法
- 两个栈实现一个队列
- 数据库 事务的特性ACID
- 24.Maven 的单模块 / 多模块之 Spring MVC + Spring + Mybatis 项目讲解
- 假后归来
- 80211(b/a/n/ac)速率介绍
- PHP淘宝,天猫,阿里巴巴中国站1688 产品采集,产品库存监控程序
- WordPress中查看所有页面信息
- 关于javaWeb的Filter过滤器
- LeetCode 50. Pow(x, n)