字符串操作(算法与数据结构课程设计)(7)
发布时间:2021-06-08
发布时间:2021-06-08
{ int i,h,l,m,n,j=0;
for(i=0;i<S.length;i=i+2) {h=(S.ch[i]-'x'); l=(S.ch[i+1]-'z'); m=(h<<4); n=(l&0xf); T->ch[j]=m+n; j++; }
T->length=S.length/2; }
//解密
//------------模式匹配----------------------- int Index(SString S,SString T, int pos) { int i,m,n; SString sub; if (pos>=0)
{ n=StrLength(S); m=StrLength(T); i=pos; while (i<=n-m)
{ SubString(&sub,S,i,m); if (StrCompare(sub,T)!=0) i++; else
return i; } }
return -1; }//穷举法
int IndexBF(SString S,SString T,int pos) {int i,j,k=-1; i= pos; j = 0;
while( i<S.length && j<T.length){
if(S.ch[i] == T.ch[j]){ i++; j++; } else{ i = i-j+1; j =0; } }
if(j>=T.length) k=i-T.length; return k; }
//BF算法
void get_next(SString T, int next[]) {int j,k;
next[0]=-1; next[1] = 0; j = 1;k=0;
while( j<T.length){ if(T.ch[j]==T.ch[k])
{k++;j++;next[j]=k;}
下一篇:一个HR人给应届生的面试建议