题意:
     给你两个串,问你串a在串b中出现了多少次。

思路:

      直接匹配,KMP时匹配到匹配串的最后一个的时候不用跳出,直接匹配就行了,最后一个'/0'不会和目标串匹配,所以经过next[l2]就直接自动找到该去的位置了,怎么说呢,今天刚学的KMP,给我的感觉就是"记忆化搜索"。


#include<stdio.h>
#include<string.h>

char a[1100000] ,b[11000];
int next[11000];void get_next(int m)
{int j ,k;j = 0 ,k = -1;next[0] = -1;while(j < m){if(k == -1 || b[j] == b[k])next[++j] = ++ k;elsek = next[k];}return ;
}int KMP(int n ,int m)
{int sum = 0;int i ,j;for(j = i = 0 ;i < n ;){if(a[i] == b[j]){if(j == m - 1)sum ++;i ++ ,j ++;}else{j = next[j];if(j == -1){j = 0;i ++;}}}return sum;
}int main ()
{int t ,n ,m;scanf("%d" ,&t);while(t--){scanf("%s %s" ,b ,a);n = strlen(a);m = strlen(b);if(m > n) puts("0");else{get_next(m);printf("%d\n" ,KMP(n ,m));}}return 0;
}

hdu1686 最大匹配次数 KMP相关推荐

  1. 计算字符串t在字符串s中出现的次数(KMP)

    题意:给出两个字符串s和t,求t在s中出现的个数 思路:用kmp算法,在第一次匹配(t,s)后,如果t的前缀和后缀一样,就可以直接将s移动到与后缀匹配的位置,不必只一位一位的移 代码如下: def f ...

  2. 3000+长文带你进入KMP算法思想

    1. 基本介绍 原文最先在博客园发布,原地址:3000+长文带你进入KMP算法思想 1.1 说明 时间复杂度: O ( N ) O(N) O(N): 空间复杂度: O ( N ) O(N) O(N): ...

  3. [转载] python 去除字符串中指定字符

    参考链接: Python字符串 replace python中的strip()可以去除头尾指定字符 ss = '我的电话是18827038663,也是微信号,\n 请加入,谢谢\n\n\n' prin ...

  4. 2021.7纪中快乐游记(下)

    DayDayDay 7:7:7: 7.187.187.18 周日放假! 早上居然6:30就起来了.去吃了个早餐就回机房. 按照原计划,应该是要写作业的,所以很自觉的拿出数学试卷写完一张半. 然后看到c ...

  5. DragonEnglish——COCA20000单词+音频+释义+例句及翻译内容聚合

    DragonEnglish--COCA20000单词+音频+释义+例句及翻译内容聚合 视频演示 生成数据库 匹配例句 翻译例句 数据恢复 单词音频获取 项目文件结构 总结 前言: 前段时间,我了解到了 ...

  6. 服务器LINUX查看文件操作

    LINUX查看文件操作 步骤命令如下: grep # 显示 key 所在行及前后5行grep -5 'key' filegrep -C 5 'key' file # 显示 key 所在行及前5行gre ...

  7. hdu--1358--KMP算法失配函数getfail()的理解--Period

    /*Name: hdu--1358--PeriodAuthor: shen_渊Date: 20/04/17 10:24Description: 长度/向后移动的位数 = 出现的次数 kmp其实匹配到了 ...

  8. 做题记录(2019年2月10日起)

    开个博客记录一下自己做过的题: 2019年: 2月: UVA10082 (字符串常量水题) https://vjudge.net/problem/UVA-10082 UVA272 (字符串替换水题) ...

  9. KMP模版 KMP求子串在主串出现的次数模版

    求取出现的次数 :  #include<bits/stdc++.h> const int maxn = 1e6 + 10; char mo[maxn], str[maxn];///mo为模 ...

最新文章

  1. 关于Jfinal的分享代码托管GitHub
  2. Ubuntu 对比 CentOS 后该如何选择?
  3. linux下安装php的imagick扩展模块(附php升级脚本)
  4. 【Android 逆向】ART 脱壳 ( InMemoryDexClassLoader 脱壳 | InMemoryDexClassLoader 类加载器脱壳点总结 )
  5. 对话系统有哪些最新进展?这17篇EMNLP 2021论文给你答案
  6. LeetCode 72. 编辑距离(DP)
  7. 第5篇:Flowable-Modeler详述之开发环境搭建
  8. iphone7尺寸_iPhone 12 mini、12 Pro Max真机对比图赏:尺寸直观感受下
  9. 5G to B核心网建设白皮书发布:2025年运营商toB市场高达6020亿美元
  10. ser crt linux 乱码,大师为你解决securecrt中文乱码【处理指南】
  11. Java对象的serialVersionUID在序列化和反序列化的用途
  12. 从氨基酸到大分子(蛋白质、核酸)
  13. java中的事件派发机制_事件派发器模式
  14. 基于java宠物商店管理系统(java毕业设计)
  15. sap 新增科目表_在SAP中新建会计科目
  16. 微信小程序数据库一次查询多个条件的方法
  17. 基于SSM的大学生创业众筹平台网站 毕业设计-附源码212000
  18. 强化学习——双臂攀爬机构运动控制
  19. C语言剖析OC的rangeOfString方法
  20. 公众号改名了,聊聊我的思考

热门文章

  1. 如何找出标有App Store 精华,Essentials的所有软件?
  2. IOS判断用户的网络类型(2/3/4G、wifi)
  3. XE5 Android 开发数据访问手机端 解决乱码的办法
  4. 微软MCITP系列课程(一)第一讲:部署虚拟机
  5. 在WAS中得到OracleConnection
  6. 为什么ORM性能比iBATIS好?
  7. VC回调函数定义和使用
  8. 读《大道至简——失败的过程也是过程》有感
  9. 用imageNamed加载图片产生的问题
  10. CF223C【Partial Sums】(组合数学+乱搞)