首页 > 其他分享 > jmu-ds-实现KMP

jmu-ds-实现KMP

时间:2023-06-18 10:33:20浏览次数:47  
标签:int MAX len next char str KMP jmu ds

 jmu-ds-实现KMP

 

#include <stdio.h>
#include<string.h>
const int MAX_LEN=20010;
void get_next(char str[],int len,int next[])
{
int i=0,j=0;
next[0]=-1;
for(i=1;i<len;i++){
while(j>0&&str[i]!=str[j])
j=next[j-1];
if(str[i]==str[j] )j++;
next[i]=j;
}
}
int find_pattern(char s[],int len_s,char t[],int len_t,int next[])
{
int i=0,j=0;
while(i<len_s&&j<len_t){
if(
j==-1||s[i]==t[j]
){
j++;i++;
}else{
j=next[j];
}
}
if(j==len_t)
return i-j;
else
return -1;
}
int main (){
int cas,a;
char s[MAX_LEN],t[MAX_LEN];
int next[MAX_LEN];
scanf("%d",&cas);
while(cas--){
scanf("%s %s",s,t);
int len_s=strlen(s);
int len_t=strlen(t);
get_next(t,len_t,next);
a=find_pattern(s,len_s,t,len_t,next);
if(a==-1)
printf("not find!\n");
else
printf("%d\n",a);
}
return 0;
}

标签:int,MAX,len,next,char,str,KMP,jmu,ds
From: https://www.cnblogs.com/yankeqi/p/17488791.html

相关文章

  • 算法与数据结构——kmp算法
    7-1jmu-ds-实现KMP分数 10#include<stdio.h>#include<iostream>#include<string.h>usingnamespacestd;constintMAX_LEN=20010;//本题运用到字符串比对中的next[j]求法具体算法可以直接百度//get_next就是用于求next[j]的这里只需要传入目标串就行voidget_nex......
  • 关于KMP
    关于KMP平凡,而又不平凡的一天,12月31日,2022年的最后一天,让我们用几句代码迎接新年的到来。cout<<"Goodbye2022\n";printf("Hello2023!");扯正题。Kmp的简介KMP算法是字符串匹配算法,基础的用途是在文本串中快速查找与模式串相匹配的位置。一些感想我们在研究这个算法的......
  • # yyds干货盘点 # 盘点一个Pandas日期处理的问题
    大家好,我是皮皮。一、前言前几天在Python群里【爱的力量】问了一个Python日期处理的问题,这里拿出来给大家分享下。'2022-03-2508:00:00.000000000'大佬们,这种格式的字符串有什么简单的方法可以转换为2022年3月25日8时吗?这里他自己也写了一个代码,如下所示:x='2022-03-2508:00:00......
  • 源码泄露+bak备份泄露+vim泄露+.DS_Store(mas迁移泄露)
    源码泄露+bak备份泄露+vim泄露+.DS_Store(mas迁移泄露)1.源码泄露web网站源码打包在web目录下造成泄露,通常以压缩包方式存在,如.zip、.rar、.tar、.tar.gz等,常见命名方式为网站名,www.网站名,backup+网站名等简单入门题目扫描到压缩包文件进行下载,找到对应文件,查看是否有flag,如果没......
  • 解决vue2中methods写的方法无法使用箭头函数
    1.情况:在method写递归函数,函数内使用了this.变量,报错变量为undefined,原因是function内this指向改变,因改写为箭头函数,使其this不被改变,但是methods内又无法写箭头函数 2.解决:使用var获取this,供函数内使用 ......
  • 痞子衡嵌入式:主流QuadSPI NOR Flash厂商关于QE位与IO功能复用关联设计
    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家讲的是几家主流QuadSPINORFlash厂商关于QE位与IO功能复用关联设计。痞子衡之前写过一篇文章《串行NORFlash下载/启动常见影响因素之QEbit》,这篇文章介绍了几家主流厂商关于QEbit在Flash内部寄存器位置以......
  • 单模字符串匹配算法(KMP, exKMP, manacher)
    约定:本文字符串均从\(1\)开始。模式串\(T\)的长度为\(n\),匹配串\(S\)的长度为\(m\)。1.KMP1.1前缀函数给定一个长度为\(n\)的字符串\(S\),其前缀函数被定义为一个长度为\(n\)的数组\(\pi\)。其中\(\pi_i\)被定义为:若子串\(S[1\cdotsi]\)有一对相等的真前......
  • Vue进阶(幺贰陆):表格复用 TypeError: _self.$scopedSlots.default is not a function解
    (文章目录)一、前言在使用elementUI的el-table组件时,表头应用v-if判断来动态显示,正常来说这样的操作是没有问题的,但是如果在这基础上使用<templateslot-scope="scope">操作的话,表头一旦切换就会报错,错误信息如下:_self.$scopedSlots.defaultisnotafunction二、解决方......
  • RK3588使用RK628D 之 HDMI转成双路LVDS信号接LVDS屏幕
    简介本文是基于RK3588平台,SDK版本:RK3588_ANDROID12.0RK628D调试总结。视频桥接芯片:RK628D驱动代码:"kernel-5.10\drivers\misc\rk628"(驱动用的是rk628-for-all-v21版本)本次调试的方案功能:从SOC出来的HDMITX通过RK628D转成双路LVDS信号接LVDS屏幕。2.视频桥接芯片RK628D调试2.......
  • rabbit MQ —— ha-sync-mode. message 同步/ 丢失 in new pods
    经典队列镜像—兔子MQ(rabbitmq.com) why?message信息同步=》queue一段时间不可用(可用性降低) ConfiguringSynchronisationLet'sstartwiththemostimportantaspectofqueuesynchronisation: whileaqueueisbeingsynchronised,allotherqueueoperati......