第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

KMP算法什么意思

KMP算法什么意思

C
寶慕林6992211 2016-04-26 21:57:20
? KMP算法什么意思
查看完整描述

1 回答

已采納
?
qq___524

TA貢獻171條經(jīng)驗 獲得超74個贊

#include?<bits/stdc++.h>using?namespace?std;/*
?*next[]的含義:x[i-next[i]...i-1]?=?x[0...next[i]-1]?
?*next[i]為滿足x[i-z...i-1]?=??z[0...z-1]的最大z值(就是x的自身匹配);?
?*/void?kmp_pre(char?x[],?int?m,?int?next[]){????int?i,?j;
????j?=?next[0]?=?-1;
????i?=?0;????while(i?<?m){????????while(j?!=?-1?&&?x[i]?!=?x[j])??j?=?next[j];
????????next[++i]?=?++j;
????}
}/*
?*kmpNext[]的意思是:next'[i]?=?next[next[...[next[i]]](直到next'[i]<0或者x[next'[i]]!=x[i])?
?*這樣的預(yù)處理就可以快一些?
?*
?*/void?preKMP(char?x[],?int?m,?int?kmpNext[]){????int?i,?j;
????j?=?kmpNext[0]?=?-1;
????i?=?0;????while(i?<?m){????????while(-1?!=?j?&&?x[i]?!=?x[j])??j?=?kmpNext[j];????????if?(x[++i]?==?x[++j])???kmpNext[i]?=?kmpNext[j];????????else????kmpNext[i]?=?j;
????}
}/*
?*返回x在y中出現(xiàn)的次數(shù),?可以重疊?
?*/int?next[1010];int?KMP_Count(char?x[],?int?m,?char?y[],?int?n){????//x是模式串,?y是主串?
????int?i,?j;????int?ans?=?0;//??preKMP(x,?m,?next);
????kmp_pre(x,?m,?next);
????i?=?j?=?0;????while?(i?<?n){????????while(j?!=?-1?&&?y[i]?!=?x[j])??j?=?next[j];
????????i++;
????????j++;????????if?(j?>=?m){
????????????ans?++;
????????????j?=?next[j];
????????}
????}????return?ans;
}int?main(){????char?y[]?=?"BBCABCDABABCDABCDABDE";????char?x[]?=?"ABCDABD";????cout?<<?KMP_Count(x,?strlen(x),?y,?strlen(y));????return?0;
}


查看完整回答
反對 回復(fù) 2016-04-26
  • 1 回答
  • 2 關(guān)注
  • 1551 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號