经典算法之暴力匹配算法(字符串)
来源:互联网 发布:新材料在线软件 编辑:程序博客网 时间:2024/05/20 18:42
/************************author's email:wardseptember@gmail.comdate:2017.12.17暴力匹配算法************************//*对于一个串中的某子串的定位操作称为串的模式匹配,其中待定位的子串称为模式串。算法的基本思想:从主串的第一个位置起和模式串的第一个字符开始比较,如果相等,则继续逐一比较后续字符;否则从主串的第二个字符开始,再重新用上一步的方法与模式串做比较,以此类推,直到比较完模式串中的所有字符。若匹配成功,则返回模式串在主串中的位置;若匹配不成功,则返回一个可区别与主串的位置标记,如“-1”。*/#include<iostream>#include <stdio.h>using namespace std;#define maxSize 50int BF(char *str, char *substr);//暴力匹配算法void main() { char str[50] = "ABABCABCACBAB"; char substr[50] = "ABCAC"; int result; cout << "BF算法匹配结果:" << endl; result = BF(str, substr); if (result != -1) cout << "主串与子串在主串的第" << result << "个字符(首字符的位置为0)处首次匹配" << endl; else cout << "无匹配子串" << endl;}int BF(char *str, char *substr) {//暴力匹配算法 int i = 0, j = 0, k = i; while (i < strlen(str) && j < strlen(substr)) { if (str[i] == substr[j]) { ++i; ++j; } else { j = 0; i = ++k;//匹配失败,i从主串的下一位置开始,k中记录了上一次的起始位置 } } if (j >= strlen(substr)) { return k; } else return -1;}
以上如有错误,请指出,大家共同学习进步
阅读全文
0 0
- 经典算法之暴力匹配算法(字符串)
- 字符串匹配的算法(暴力算法和KMP算法)
- 字符串匹配-暴力搜索算法
- 字符串匹配经典算法
- 经典算法整理之字符串匹配
- 字符串匹配算法(暴力匹配和KMP)
- 字符串匹配之---BF算法(暴力破解法)
- 玩转经典算法之字符串匹配(一) 问题引入和朴素的匹配算法
- 字符串匹配暴力算法 与 字符串匹配的KMP算法
- 字符串匹配经典算法讲解
- 字符串查找算法总结(暴力匹配、KMP 算法、Boyer-Moore 算法和 Sunday 算法)
- 字符串查找算法总结(暴力匹配、KMP 算法、Boyer-Moore 算法和 Sunday 算法)
- 字符串查找算法总结(暴力匹配、KMP 算法、Boyer-Moore 算法和 Sunday 算法)
- 字符串匹配算法--BF算法(暴力破解法)+KMP算法
- 字符串匹配算法 -- 暴力破解法(朴素法),RK算法,KMP算法
- 基于JavaScript的字符串暴力匹配算法(BF算法)
- BF暴力匹配算法
- 暴力匹配算法
- JSP页面如何导入优酷视频
- 745. Prefix and Suffix Search
- 关于extern以及源文件和头文件的应用
- 以太币挖矿教程
- zabbix 安装
- 经典算法之暴力匹配算法(字符串)
- leetcode 535. Encode and Decode TinyURL 编码和解码精简URL地址
- JNI基础知识
- shiro权限定义的三种方法
- java基础之单例模式
- 45-Jump Game II
- 【1701H1】【穆晨】【171217】连续第六十八天总结
- 洛谷P2023 && bzoj1798 [AHOI2009]维护序列
- c++课设学生成绩与学籍管理系统