国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

poj 3461

2019-11-08 02:41:33
字體:
來源:轉載
供稿:網友
#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>using namespace std;const int maxn = 1000001;char text[maxn];//文本串char pattern[maxn];//模式串int nnext[maxn];//next數組.直接起next可能會跟系統中預定的重名/*O(m)的時間求next數組*/void get_next() {	int patternLen = strlen(pattern);//計算模式串的長度	nnext[0] = nnext[1] = 0;	for (int i = 1; i < patternLen; i++) {		int j = nnext[i];		while (j && pattern[i] != pattern[j]){			j = nnext[j];		}		nnext[i + 1] = pattern[i] == pattern[j] ? j + 1 : 0;	}}/*o(n)的時間進行匹配 * * 返回第一次匹配的位置 */int kmp() {	int ans = 0;//計算模式串在文本串中出現的次數	int textLen = strlen(text);//計算文本串的長度	int patternLen = strlen(pattern);//計算模式串的長度	int j = 0;/*初始化在模式串的第一個位置*/	for (int i = 0; i < textLen; i++) {/*遍歷整個文本串*/		while (j && pattern[j] != text[i]){/*順著失配邊走,直到可以匹配,最壞得到情況是j = 0*/			j = nnext[j];		}		if (pattern[j] == text[i]){/*如果匹配成功繼續下一個位置*/			j++;		}		if (j == patternLen) {			ans++;//計算pattern在text中出現的次數..		}	}	return ans;}int main() {	int t;	scanf("%d", &t);	while (t--) {		scanf("%s%s", pattern, text);		get_next();		PRintf("%d/n", kmp());	}	return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武山县| 涞水县| 乌兰浩特市| 景洪市| 安多县| 泽州县| 岳普湖县| 寿宁县| 小金县| 垣曲县| 郴州市| 佛学| 和政县| 日土县| 定西市| 昌黎县| 沁源县| 邯郸县| 临清市| 嘉祥县| 临安市| 靖远县| 舒兰市| 井研县| 珲春市| 青岛市| 金溪县| 陕西省| 宁蒗| 吐鲁番市| 酉阳| 毕节市| 武陟县| 西华县| 巴彦县| 古浪县| 新营市| 宁河县| 稷山县| 西乌珠穆沁旗| 会理县|