HDU 2087剪花布条 KMP
2011-02-01 12:22
393 查看
KMP算法入门题 哥第一次写KMP惭愧啊,惭愧getnext写得蛋痛,后面的KMP部分更蛋痛。改了N久
这是final版。。。改了好久啊。。。
#include<stdio.h> #include<string.h> #define Max 1005 char str[Max+5] = {0},ch[Max+5] = {0}; int next[Max+5],count = 0,n; void getnext( ) { int i = 0,j = -1; next[0] = -1; while( ch[i] ) { if( j == -1 || ch[i] == ch[j] ) ++i,++j,next[i] = j; else j = next[j]; } n = i; } void KMP( ) { int i = 0, j = 0; while( str[i] ) { if( j == -1 || str[i] == ch[j] ) ++j,++i; while( str[i] && ch[j] && str[i] == ch[j] ) ++i,++j; if( j == n ) ++count,j = 0; else j = next[j]; } } int main( ) { while( scanf( "%s",str ),str[0] != '#' ) { scanf( "%s",ch ); n = count = 0; getnext( ); KMP( ); printf( "%d\n",count ); } return 0; }
这是final版。。。改了好久啊。。。
相关文章推荐
- hdu 2087 剪花布条 KMP水题。。
- hdu 2087剪花布条 (KMP入门 子串出现的次数和子串个数)
- HDU 2087 剪花布条 //简单kmp
- 【kmp字符串匹配】hdu 2087 剪花布条
- HDU 2087 剪花布条 [KMP]
- HDU 2087 剪花布条 (kmp)
- KMP(内含next数组讲解) —— 剪花布条 ( HDU 2087 )
- KMP 入门水题 hdu 2087 剪花布条
- HDU 2087 剪花布条 KMP题解
- HDU 2087 剪花布条 kmp
- HDU 2087 剪花布条 KMP入门
- hdu 2087 剪花布条 (kmp入门)
- hdu 2087 剪花布条 kmp
- hdu 2087 剪花布条 --(KMP,匹配串在主串中不可以重叠)
- HDU - 2087 剪花布条 结题报告(KMP)
- (KMP 1.3)hdu 2087 剪花布条(求文本串中有几个模式串)
- 剪花布条 (HDU_2087) KMP
- 剪花布条 【hdu-2087】 【KMP】
- 剪花布条 - HDU 2087(简单KMP | 暴力)
- HDU 2087 (KMP不可重叠的匹配) 花布条