用朴素查找算法实现串的查找(男朋友算法)
2017-09-09 13:37
190 查看
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <assert.h> //朴素查找算法(BF)俗称男朋友算法 int BF(const char *str,const char *sub,int pos) { int lens = strlen(str); int lensub = strlen(sub); if(pos<0 || pos>=lens) { return -1; } int i = pos; int j = 0; while(i<lens && j <lensub) { if(str[i] == sub[j]) { i++; j++; } else//回退 { i = i-j+1; j = 0; } } if(j>=lensub) { return i-j; } else { return -1; } } int main() { char *str="ababcabcdabcde"; char *sub="abcd"; printf("%d\n",BF(str,sub,3)); printf("%d\n",BF(str,sub,6)); printf("%d\n",BF(str,sub,10)); return 0; }
打印结果为:
5
9
-1
相关文章推荐
- 查找算法—折半查找算法分析与实现(Python)
- 数据算法之二叉树查找(BinaryTreeL Search)的Java实现
- 【数据结构作业一】写出顺序表的结构体类型定义及查找、插入、删除算法,并以顺序表作存储结构,实现线性表的插入、删除
- java语言实现常用算法(排序和查找)
- AutoComplete的字典建立和单词查找算法实现
- C++实现查找中位数的O(N)算法和Kmin算法
- 各种基本算法实现小结(六)—— 查找算法
- 【算法拾遗】二分查找递归非递归实现
- js实现常见的几种算法(数组去重、字符统计、二分查找等)
- 算法-符号表的实现(顺序查找和二分查找)
- 字符串匹配的KMP算法和朴素算法,及其python实现
- 查找最小的k 个元素之C#算法实现
- 二分查找算法的实现-分治策略
- 二分查找算法的递归与非递归实现
- 查找(顺序、二分、斐波那契和插值)算法的实现和测试
- 使用“初中知识”实现查找重复最优算法 + 最终极限算法
- 朴素模式匹配算法java实现
- 二分查找算法Python3实现
- 单词字典中对兄弟单词查找算法(C++实现)
- 算法:C++实现O(n)复杂度内查找第K大数