首页 > 其他分享 >KMP字符串匹配

KMP字符串匹配

时间:2023-06-18 20:45:54浏览次数:35  
标签:匹配 int s2 s1 KMP 字符串

kmp算法是优化字符串匹配效率:

//KMP字符串匹配:
//模板:
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
char s1[N],s2[N];
int n,m,ne[N];
int main()
{
    cin>>s1+1>>s2+1;
    n=strlen(s1+1),m=strlen(s2+1);
    for(int i=2,j=0;i<=m;i++){
        while(j&&s2[i]!=s2[j+1]) j=ne[j];
        if(s2[i]==s2[j+1]) j++;
        ne[i]=j;
    }
    return 0;
}

 

标签:匹配,int,s2,s1,KMP,字符串
From: https://www.cnblogs.com/o-Sakurajimamai-o/p/17489715.html

相关文章

  • 代码随想录算法训练营第十天| 20. 有效的括号 1047. 删除字符串中的所有相邻重复项
    20.有效的括号  特点:左括号之后,可能还会有左括号,但是只要有右括号,那么它必须立刻和最近的左括号代码:1charreturnRightChar(char&c)2{3switch(c)4{5case'[':return']';6case'(':return')';7case'{':r......
  • PHP中常用字符串函数
    //strlen取字符串长度$string="Hello,world!";$length=strlen($string);echo$length;//输出:13//strpos找字符串,返回位置$str="helloworld";$position=strpos($str,"world");echo$position;//输出:7//substr截取字符串$str=&quo......
  • jmu-ds-实现KMP
     jmu-ds-实现KMP #include<stdio.h>#include<string.h>constintMAX_LEN=20010;voidget_next(charstr[],intlen,intnext[]){inti=0,j=0;next[0]=-1;for(i=1;i<len;i++){while(j>0&&str[i]!=str[j])j=next[j......
  • 算法与数据结构——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......
  • Go 中的格式化字符串`fmt.Sprintf()` 和 `fmt.Printf()`
    在Go中,可以使用fmt.Sprintf()和fmt.Printf()函数来格式化字符串,这两个函数类似于C语言中的scanf和printf函数。fmt.Sprintf()fmt.Sprintf()函数返回一个格式化后的字符串,而不是将其打印到标准输出流中。下面是一个例子:packagemainimport"fmt"funcmain(){......
  • 关于KMP
    关于KMP平凡,而又不平凡的一天,12月31日,2022年的最后一天,让我们用几句代码迎接新年的到来。cout<<"Goodbye2022\n";printf("Hello2023!");扯正题。Kmp的简介KMP算法是字符串匹配算法,基础的用途是在文本串中快速查找与模式串相匹配的位置。一些感想我们在研究这个算法的......
  • Java_Base4之多态、api使用、字符串方法学习
    一、多态Polymorphism少写代码概念:用父类的类型来接收子类的对象先决条件: 继承/接口实现 父类类型接收子类对象 //实现扩展性优点: 扩展性强,解决了代码复用,降低类型耦合度 可以少定义变量,少些重复代码。 案例:一个方法接受不同的子类类型。缺点: 不能使用子类特有方法 ......
  • python基础之字符串处理
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • 正则表达式匹配:元字符、分组匹配、数量匹配
    数量匹配: ......
  • 基类属性如何反序列化表示具体类的Json字符串
    JsonConverter可以决定类型如何被序列化或反序列化。接口属性被反序列化时,会抛出异常,因为接口没有构造函数。JsonConvert.DeserializeObject<IVehicle>("Json字符串");JsonConvert.DeserializeObject<List<IVehicle>>("Json字符串");JsonConvert.DeserializeObject<Worker>(......