HDU 1686 Kmp(字符串匹配)
2014-07-27 17:00
369 查看
/* Kmp算法的运用 这里是要统计字符在母串中出现的次数 只要在原来的基础上稍作修改即可 */ #include<iostream> #include<cstdio> #include<cstring> using namespace std; char a[10005], b[1000005]; int next[10005]; void Getnext(char* t)//构造next数组,这是关键 { int lent = strlen(t), i = 0, j = -1; memset(next,0,sizeof(int)*lent); next[0] = -1; while(i < lent) { if(j==-1 || t[i]==t[j]) { i++; j++; next[i] = j; } else j = next[j]; } } void Kmp(char* a, char* b)//Kmp函数 { int ans = 0, i = 0, j = 0, lena = strlen(a), lenb = strlen(b); Getnext(a); while(i<lenb && j<lena) { if(j==-1 || a[j]==b[i]) { i++; j++; } else j = next[j]; if(j >= lena) { ans++;//统计字串出现的次数 j = next[j]; } } printf("%d\n",ans); } int main() { int n; scanf("%d",&n); while(n--) { scanf("%s",a); scanf("%s",b); Kmp(a,b); } return 0; }
相关文章推荐
- 【kmp字符串匹配】hdu 1686 Oulipo
- 【KMP求字符串匹配次数】 hdu 1686
- HDU 1686 Oulipo , 同 POJ 3461 Oulipo (字符串匹配,KMP)
- HDU 1686 Oulipo / POJ 3461 Oulipo / SCU 2652 Oulipo (字符串匹配,KMP)
- HDU 3746(Cyclic Nacklace)字符串匹配-KMP
- HDU 1711(KMP)字符串匹配
- ICPC2017网络赛(青岛)1003 HDU 6208 字符串匹配KMP
- HDU 1686 Oulipo(KMP算法 字符串匹配)
- HDU-2087 剪花布条(KMP不重复字符串匹配次数统计)
- HDU 2087 剪花布条(字符串匹配,KMP)
- 【kmp字符串匹配】hdu 2087 剪花布条
- HDU 2087___kmp 字符串匹配
- KMP 字符串匹配 SDNU 1100 字符串查找 HDU 2087 剪花布条
- HDU 1711(KMP)字符串匹配
- 【KMP字符串匹配】hdu 1711 Number Sequence
- HDU 2594(Simpsons’ Hidden Talents)字符串匹配-KMP
- hdu 5510 Bazinga (字符串匹配 kmp/strstr加个剪枝←据说这些都不是正解)
- HDU 2087 剪花布条(字符串匹配KMP)
- KMP字符串匹配(2)
- 字符串匹配 KMP 算法