数据结构实验之串一:KMP简单应用
来源:互联网 发布:电力大数据应用案例 编辑:程序博客网 时间:2024/05/29 16:17
#include<bits/stdc++.h>using namespace std;#define maxN 1000100void getnext(char b[], int next[])///这个应该是没有问题的{ int j, n, i = 0; n = strlen(b); next[0] = -1; j = -1; while(i < n)///这一块好说,就是如果相等就往后移并且++,不相等就回溯 { if(j == -1 || b[i] == b[j]) next[++i] = ++j; else j = next[j]; }}void kmp(char a[], char b[], int next[])///这一块就是:j首先要放到0(用来比较第一位){ getnext(b, next); int i = 0, j = 0, m = strlen(a), n = strlen(b); while(i < m && j < n) { if(j == -1 || a[i] == b[j])///如果相等就都往后移 { ++i, ++j; } else///否则回溯 j = next[j]; } if(j >= n)///如果b串跑到底了,说明存在这个子串 printf("%d\n", i - n + 1);///输出 else printf("-1\n");}int main(){ char a[maxN], b[maxN]; int next[maxN]; while(~scanf("%s %s", a, b)) { kmp(a, b, next); } return 0;}
阅读全文
0 0
- KMP算法 --数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- SDUT 2272 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- SDUT2772数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用 (sdut oj2772)
- 数据结构实验之串一:KMP简单应用
- sdut oj2772 数据结构实验之串一:KMP简单应用
- 数据结构实验之串一:KMP简单应用
- SDUT 2772 数据结构实验之串一:KMP简单应用
- Android 上进行Unity真机调试的方法
- webcron 定时任务管理系统
- 腾讯云陈龙:服务化和智能化是云计算未来的发展趋势 | IBM营收连续22个季度下滑 【软件网每日新闻播报│第10-18期】
- PL/SQL Developer连接本地Oracle 11g 64位数据库
- L
- 数据结构实验之串一:KMP简单应用
- PowerDesigner V16.5 破解方法
- 新路程------adv7180寄存器的理解,hi3516a的sdio0检测
- 身陷 Bug 时,优秀的开发工程师是如何寻求帮助的?
- 解决ubuntu16.04中vivado Docnav无法打开的问题
- Google发布TensorFlow Lattice,先前知识推动灵活性提升
- 工作3个多月的感受
- 报名 | 上海GDG DevFest之"GBG工作坊"
- Windows Docker 安装