Simpsons’ Hidden Talents
文章目录
- 题目描述
- 知识点
- 实现
- 码前思考
- 代码实现
- 码后反思
题目描述
知识点
KMP
实现
码前思考
- 这道题就是进行字符串匹配问题。但是需要特别注意需要防止在
text
中找到pattern
匹配的情况
代码实现
//此题应该就是字符串的匹配问题
#include <cstdio>
#include <cstring>
const int maxn = 5e4+10;int nex[maxn];
char text[maxn];
char pattern[maxn];void getNex(){int len = strlen(pattern);nex[0] = -1;int j = -1;for(int i=1;i<len;i++){while(j!=-1&&pattern[i]!=pattern[j+1]){j = nex[j];}if(pattern[i] == pattern[j+1]){j++;}nex[i]=j;}
}int main(){while(scanf("%s",pattern)!=EOF && scanf("%s",text)){getNex();//开始进行匹配int m = strlen(text);int n = strlen(pattern);int j = -1;for(int i=0;i<m;i++){if(j == m-1){//如果完全匹配,那么需要进行回退 j=nex[j];}while(j != -1 && text[i] != pattern[j+1]){j = nex[j];}//需要进行特殊的操作 if(text[i] == pattern[j+1]){j++;}}//得到最后的jif(j>=0){for(int i=0;i<=j;i++){printf("%c",pattern[i]);} printf(" %d\n",j+1); }else{printf("%d\n",0);}}return 0;
}
码后反思
- 需要特别注意下面代码的书写:
if(j == m-1){//如果完全匹配,那么需要进行回退 j=nex[j]; }
一定要考虑这种情况,而且这个得写在最前面,不能写成求解次数那也写在后面!因为要考虑
abc
与abc
这种情况。
Simpsons’ Hidden Talents相关推荐
- HDU 2594 Simpsons’ Hidden Talents (字符串-KMP)
Simpsons' Hidden Talents Problem Description Homer: Marge, I just figured out a way to discover some ...
- kmp总结(相关例题1. Simpsons’ Hidden Talents 2.Oulipo)
kmp相关及相关例题 文章目录 kmp相关及相关例题 一.kmp算法最常规使用方法 二.相关例题 1. Simpsons' Hidden Talents 2.Oulipo 一.kmp算法最常规使用方法 ...
- HDU2594(Simpsons’ Hidden Talents)
Simpsons' Hidden Talents Problem Description Homer: Marge, I just figured out a way to discover some ...
- B - Simpsons’ Hidden Talents
B - Simpsons' Hidden Talents Homer: Marge, I just figured out a way to discover some of the talents ...
- HDU-2594 Simpsons’ Hidden Talents
HDU-2594 Simpsons' Hidden Talents 题目链接:HDU-2594 题目大意:给定两个字符串 问第一个字符串前缀与第二个字符串的后缀的最大的重复部分有多长 不为0的话将他们 ...
- Simpsons’ Hidden Talents (HDU-2594)
Simpsons' Hidden Talents (HDU-2594) Homer: Marge, I just figured out a way to discover some of the t ...
- Simpsons’ Hidden Talents(KMP ,两个串的前后缀匹配)
Simpsons' Hidden Talents 题目 给两个串,求S1的前缀和S2的后缀的最大匹配 思路 拼接两个串,处理出nxt数组,nxt[k] 即为所求,因为它们的最大匹配不能超过原串的长度, ...
- Simpsons’ Hidden Talents(辛普森一家的隐藏天赋 )(kmp经典模板题) HDU - 2594
题目:Simpsons' Hidden Talents(辛普森一家的隐藏天赋 ) 中文大意 Homer: Marge, I just figured out a way to discover som ...
- HDU2594——Simpsons’ Hidden Talents
Problem Description Homer: Marge, I just figured out a way to discover some of the talents we weren' ...
- kuangbin专题十六 KMP扩展KMP HDU2594 Simpsons’ Hidden Talents
Homer: Marge, I just figured out a way to discover some of the talents we weren't aware we had. Marg ...
最新文章
- Python TeamViewer批量提交密码重置--分析与实现
- Gradle属性(四)
- javaee编程题_在JavaEE中使用CDI的简单面向方面的编程(AOP)
- linux双ip备份,LINUX系统的双网卡双IP(双链路)实现方式
- 【gradle】mac下 gradle默认本地仓库位置
- CSS3-边框-外轮廓-文本-渐变-WEB字体
- 快速消费品行业的营销费用的管理(3)----营销费用预算管理
- erlang开发工具之intellij idea基本使用
- Arduino 例程编译错误 error: unknown type name uint_farptr_t did you mean uint_fast8_t
- RSA私钥及公钥生成
- 浅析百度有啊生活平台未来发展的八大潜力特征
- ChatGPT Network Error 在使用chatGPT的过程中回答到一半显示网络错误
- mac os 录屏快捷键_录屏软件哪个好?赶紧收藏录屏好用方法
- [WPF] WPF浏览器程序:如何发布并解决不信任程序问题
- Android RSA加密解密
- am解调matlab程序,基于Matlab的AM调制解调.doc
- 某企业发放的奖金根据利润进行提成,利润低于或等于10万元时,奖金为利润的10%;利润高于10万元低于20万元时,低于10万元部分,奖金按利润的10%提成。。。。。。
- 关于mysql数据库三范式
- 惊了!这是一篇《IOC》说明书?
- android 手写签批_Android自定义实现手写签名功能
热门文章
- 复旦计算机学院 王曦,复旦大学计算机科学与工程系薛向阳老师介绍
- mysql的双机热备自动切换_Mysql双机热备配置(超详细多图版)
- VKL144A/B 36*4点 超低功耗LCD液晶显示驱动控制电路(IC) TSSOP48/QFN48超小体积,多用于测试仪/水电表/传感器/压力表等,超低工作电流约7.5微安
- Maven下载与配置详细教程
- LCD RGB 控制技术 时钟篇
- 跨模态/多模态 cross-modal
- 《用户故事与敏捷方法》读书笔记 02 细节是什么
- 服务器空间不足的原因有哪些
- Java web阶段学习总结(华清远见)
- tk-mybatis使用