kmp
来源:互联网 发布:网络协议对应层次 编辑:程序博客网 时间:2024/06/05 18:03
#include<iostream>#include<vector>#include<string>using namespace std;void getNext(vector<int> &next, const string &pattern){ next[1] = 0; int k = 0; for(int q=2;q<=pattern.length();++q) { while((k>0) && (pattern[k] != pattern[q-1])) k = next[k]; if(pattern[k]==pattern[q-1]) ++k; next[q] = k; }}int kmp(const vector<int> &next, const string &pattern, const string &str){ int result = 0; int q = 0; for(int i=0;i<str.length();++i) { while(q>0 && pattern[q] != str[i]) q = next[q]; if(pattern[q] == str[i]) ++q; if(q == pattern.length()) { ++result; q = next[q]; } } return result;}int main(){ int n; string pattern,str; cin>>n; while(n) { cin>>pattern>>str; vector<int> next(pattern.length()+1,0); getNext(next,pattern); cout<<kmp(next,pattern,str)<<endl; --n; } return 0;}
0 0
- KMP
- KMP
- KMP
- KMP
- KMP
- KMP
- kmp
- kmp
- KMP
- kmp
- KMP
- KMP
- KMP
- kmp
- KMP
- KMP
- kmp
- KMP
- 【微信开发】-发送位置进行Geocoding API转换(经纬度和地址名称互换), 主要代码在private function receiveLocation($object)
- session的removeAttribute()和invalidate()的区别
- 设计模式笔记 – Proxy 代理模式 (Design Pattern)
- windows下winscp连接不上ubuntu
- 【解决】unable to open database file
- kmp
- 嵌入式ARM裸板程序——GPIO
- 最详细的拯救者使用U盘重装win7系统的教程
- Linux新手入门:Unable to locate package错误解决办法
- 【CodeForces 149D】 【dp+dfs好题】D. Coloring Brackets【在限制条件下括号染色问题】
- C语言 程序 简单二进制题目
- 作为一个项目管理者要不要懂技术
- Ibus(pinyin)输入法输入错误
- CSDN爬虫(三)——网络爬虫模拟登陆两种策略