国产探花免费观看_亚洲丰满少妇自慰呻吟_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;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 贺州市| 湖北省| 陇南市| 吐鲁番市| 凌源市| 仁怀市| 四子王旗| 黄浦区| 墨玉县| 孙吴县| 凤山县| 焦作市| 阳谷县| 望奎县| 阳曲县| 厦门市| 阿克| 南阳市| 隆尧县| 西宁市| 桦甸市| 如东县| 平南县| 堆龙德庆县| 尼勒克县| 鞍山市| 隆林| 长春市| 香港 | 静乐县| 集安市| 霸州市| 湾仔区| 河池市| 宝应县| 葵青区| 铁力市| 瑞金市| 应城市| 南雄市| 舟曲县|