蛮力法:设计算法求解字符串的模式匹配问题,并编程实现。
2014-11-11 18:36
766 查看
蛮力法:设计算法求解字符串的模式匹配问题,并编程实现。
蛮力法字符串的模式匹配算法思想:
将模式对准文本的前m个字符,然后从左到右检查每一对相应的字符是否匹配。如果全部匹配,则算法停止或进行下一轮匹配;如果遇到一对字符不匹配,则将模式向右移一位,继续匹配。直到没有足够的字符匹配整个模式了。
代码实现:
运行结果:
蛮力法字符串的模式匹配算法思想:
将模式对准文本的前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); } }
运行结果:
相关文章推荐
- 蛮力法:设计算法求解背包问题,并编程实现。
- 用递归法:设计算法求解汉诺塔问题,并编程实现。 (1) Hanoi(汉诺)塔问题分析 这是一个古典的数学问题,是一个用递归方法解题的典型例子。问题是这样的:古代有一个梵塔,塔内有3个座 A,B,C
- 这道题应该怎么做啊 求解 字符串的模式匹配问题
- 简单字符串模式匹配算法的C++实现
- 基因表达式编程的任务指派问题求解算法设计与实现
- KMP字符串模式匹配算法实现
- KMP字符串模式匹配算法实现
- KMP字符串模式匹配算法实现
- 基因表达式编程的任务指派问题求解算法设计与实现
- KMP字符串模式匹配算法实现(php)
- KMP字符串模式匹配算法实现
- 基因表达式编程的任务指派问题求解算法设计与实现
- 约瑟夫问题求解算法的设计与实现
- 0.2-设计模式怎么样解决设计问题-针对接口编程,而不是针对实现编程
- 数据结构和算法设计(迷宫求解问题的栈和队列的实现)
- java实现字符串的一般和KMP模式匹配算法
- 字符串模式匹配算法实现1
- 基因表达式编程的任务指派问题求解算法设计与实现
- 基因表达式编程的任务指派问题求解算法设计与实现
- KMP字符串模式匹配算法Java实现