您的位置:首页 > 编程语言

蛮力法:设计算法求解字符串的模式匹配问题,并编程实现。

2014-11-11 18:36 766 查看
蛮力法:设计算法求解字符串的模式匹配问题,并编程实现。

蛮力法字符串的模式匹配算法思想:

将模式对准文本的前m个字符,然后从左到右检查每一对相应的字符是否匹配。如果全部匹配,则算法停止或进行下一轮匹配;如果遇到一对字符不匹配,则将模式向右移一位,继续匹配。直到没有足够的字符匹配整个模式了。

代码实现:

/* 蛮力法求字符串模式匹配总数,并显示每一个匹配子串的首个字符索引 */

#include <iostream>
#include <cstdio>
#include <string>
using namespace std;

//The main function
int main()
{
string str1, str2;
int num = 0;

printf("please input text:\n");
getline(cin, str1);
printf("please input you want to find the substring:\n");
getline(cin, str2);

printf("This program default下标从0开始\n");
for(int i=0; i<str1.size(); i++){

if(str1[i]==str2[0]){

int totalString = 1;

for(int j=0; j<str2.size(); j++){

if(str1[i+j]!=str2[j]){

totalString = 0;
break;
}
}

if(totalString){
printf("the %dth matching substring's first letter下标 is %d\n",++num,i);
}
}
}
if(num==0){
printf("No matching substring");
}else{
printf("Total Found %d matching substring\n",num);
}

}


运行结果:




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: