作者jenny2921 (耶)
看板b98902HW
标题[资演] 双班-failure function
时间Fri Nov 5 15:01:53 2010
ya~我发现了还不错的投影片所以PO上来跟大家分享唷~
http://algorithm.cs.nthu.edu.tw/~ds/material/KMP.pps
然後顺便贡献上几个练习题~=ˇ=
不过底下的答案都是我自己写的~有错欢迎指证~
a b c d e f g
-1 -1 -1 -1 -1 -1 -1
a b c a b c
-1 -1 -1 0 1 2
a b a b a b a c
-1 -1 0 1 2 3 4 -1
a b z a b c a b z a b z
-1 -1 -1 0 1 -1 0 1 2 3 4 2
a b z a b a b z a b z
-1 -1 -1 0 1 0 1 2 3 4 2
a b z a b z a b z a b
-1 -1 -1 0 1 2 3 4 5 6 7
a b z a b z a b c a b
-1 -1 -1 0 1 2 3 4 -1 0 1
最後再贴一下我写的很弱的code(羞)
#include<stdio.h>
#include<string.h>
int main()
{
char str[82];
int fNum[82];
while(scanf("%s",str)==1){
int i;
for(fNum[0]=-1,i=1;i<strlen(str);i++){
int index=fNum[i-1]+1;
while(str[index]!=str[i]){
index--;
if(index==-1)break;
index=fNum[index]+1;
}
fNum[i]=index;
}
for(i=0;i<strlen(str);i++)printf("%3c",str[i]);
printf("\n");
for(i=0;i<strlen(str);i++)printf("%3d",fNum[i]);
printf("\n");
}
return 0;
}
建议大家有空也可以自己写写看~~就会完全确定自己搞懂没了!!:)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.30.136
※ 编辑: jenny2921 来自: 140.112.30.136 (11/05 15:12)
1F:推 SoranoKid:认真用心推!! 11/05 16:15
2F:推 yudi1991:推 11/05 19:55