hihocoder KMP算法
2017-04-01 12:44
190 查看
思路:
KMP模板。
实现:
KMP模板。
实现:
1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #include <iostream> 5 #include <string> 6 using namespace std; 7 8 int f[10005]; 9 10 void getfill(string s) 11 { 12 memset(f, 0, sizeof(f)); 13 for(int i = 1; i < s.size(); i++) 14 { 15 int j = f[i]; 16 while(j && s[i] != s[j]) 17 j = f[j]; 18 f[i+1] = (s[i] == s[j]) ? j+1 : 0; 19 } 20 } 21 22 int find(string a, string s) 23 { 24 int ans = 0; 25 getfill(s); 26 int j = 0; 27 for(int i = 0; i < a.size(); i++) 28 { 29 while(j && a[i] != s[j]) 30 j = f[j]; 31 if(a[i] == s[j]) 32 j ++; 33 if(j == s.size()) 34 { 35 ans ++; 36 } 37 } 38 return ans; 39 } 40 41 int main() 42 { 43 int n; 44 cin >> n; 45 string a, b; 46 for(int i = 0; i < n; i++) 47 { 48 cin >> a >> b; 49 cout << find(b, a) << endl; 50 } 51 return 0; 52 }
相关文章推荐
- hihoCoder 1015 : KMP算法
- hihocoder 1015 KMP算法
- hihoCoder每周一题 KMP算法
- hihoCoder 1015 KMP算法
- hihoCoder 1015 kmp算法
- hihocoder第三周KMP算法(睡了一觉突然一个灵感出现就把这道题解出来了)
- hihoCoder 1015 : KMP算法
- KMP hihoCoder1015 KMP算法
- hihocoder-1015 KMP算法(KMP)
- [HihoCoder]#1015 : KMP算法
- hihocoder 1015 KMP算法
- hihoCoder 1015 KMP算法
- hihoCoder - 1015 - KMP算法
- HihoCoder第三周与POJ2406:KMP算法总结
- HihoCoder第三周与POJ2406:KMP算法总结
- hihoCoder 1015 KMP算法
- KMP算法模板及问题解决(HDU 1711)(hihocoder 1015 KMP)(HDU 1686)(POJ3461)(HDU1358)
- hihocoder 1015 KMP算法
- hihoCoder 1015 KMP算法(kmp)
- hihocoder 字典树,kmp算法