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

来源:互联网 发布:淘宝申请实拍保护 编辑:程序博客网 时间:2024/06/10 16:33

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


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

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


代码实现:

/* 蛮力法求字符串模式匹配总数,并显示每一个匹配子串的首个字符索引 */#include <iostream>#include <cstdio>#include <string>using namespace std;//The main functionint 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);    }}


运行结果:


0 0
原创粉丝点击