首页 > 其他分享 >Z函数

Z函数

时间:2024-03-31 10:36:10浏览次数:30  
标签:box right 函数 LCP len range

image

s = input()
n = len(s)
z = [0] * n
left,right = 0,0
# z[i]表示s和s[i:]的LCP长度,规定z[0] = 0!
for i in range(1,n):
    # 如果在z-box里,那么更新它的z[i]的值!
    if i <= right:
        z[i] = min(z[i - left],right - i + 1)
    # 相当于暴力更新
    while i + z[i] < n and s[z[i]] == s[i + z[i]]:
        # 更新 z-box!
        left,right = i,i + z[i]
        z[i] += 1

print(z)

标签:box,right,函数,LCP,len,range
From: https://www.cnblogs.com/gebeng/p/18106453

相关文章

  • neo4j使用详解(六、cypher常用函数语法——最全参考)
    Neo4j系列导航:neo4j及简单实践cypher语法基础cypher插入语法cypher插入语法cypher查询语法cypher通用语法cypher函数语法4.常用函数主要包括谓词函数(断言函数)、标量函数、聚合函数、字符串函数以及集合函数4.1.谓词函数(断言函数)谓词函数返回true或者false,主要......
  • 你真的了解回调函数吗?(文章最后放置源码)
    一、什么是回调函数简单来说就是通过函数指针调用的函数。复杂一些呢就是说将函数的指针(地址)作为参数传递给另外一个函数使用,当这个指针被用来调用其指向的函数的时候被调用的函数就是回调函数。二、回调函数怎么使用1、在学习回调函数之前我们是如何进行运算的我们来看下......
  • memcmp 函数的使用
    memcmp函数的使用memcmp函数的定义intmemcmp(constvoid*ptr1,constvoid*ptr2,size_tnum);⽐较从ptr1和ptr2指针指向的位置开始,向后的num个字节返回值如下:memcmp函数的使用#include<stdio.h>#include<string.h>intmain(){ charbu......
  • 用函数指针数组来实现对一系列函数的调用
    include<stdio.h>intadd(inta,intb);intsub(inta,intb);intmax(inta,intb);intmin(inta,intb);voidmain(){inta,b,i,k;int(*func[4])(int,int)={add,sub,max,min}//定义指针数组,并对其赋初始值printf("selectoperator(0-add,1-sub,2-max,3-min)......
  • 函数模板类型推断
    先看一段代码:template<typenameT>voidmyfunc(T&tmprv){cout<<"--------------------begin--------------------"<<endl;usingboost::typeindex::type_id_with_cvr;cout<<"T="type_id_with_cvr<T&......
  • 高等数学基础篇之判断一元函数是否连续、可导、可微,极限、原函数是否存在
    一元函数:一、极限存在的条件二、连续的条件三、可导的条件四、可微的条件五、原函数存在的条件目录一、极限存在的条件1.自变量趋于无穷大时函数的极限2.自变量趋于有限值时函数的极限二、连续的条件1.自变量改变量趋于0时,函数值改变量也趋于02.该点的极限等于该......
  • (八)Rust 函数和注释
    函数在Rust里,声明函数使用fn关键字,按照惯例,针对函数和变量名,Rust使用snakecase命名规范:所有的字母都是小写,单词之间使用下划线分开,例如:函数的参数定义函数时里边定义的参数,叫形参(parameters)调用函数时传递的具体参数,叫实参(arguments)在函数签名里,必须声明每个参数的类......
  • python-numpy-常用函数详解
    文章目录一、函数详解np.empty(num_points)np.zeros(shape,dtype=float,order='C')np.tile(A,reps)np.newaxisnp.stack(arrays,axis=0)np.roll(a,shift,axis=None)np.repeat(a,repeats,axis=None)arr.reshape(shape)arr.ravel()np.mean(a,axis=None,dtype=None......
  • python3 : 可变数据类型/不可变数据类型 与函数传参
    按语:        可变/不可变数据类型与函数传参:               全局变量为不可变数据或可变数据,并且,用作函数参数,                               函数的局部变量可能会导致全局变量的数值变化。1、可变......
  • 前端面试手写题目|编写一个函数,实现对象深拷贝,递归引用,日期,正则symbol健。手写Object.
    快速,选择,希尔45,编写一个函数,实现对象深拷贝,并解决递归引用,日期,正则表达式,对象中含有symbol健等问题。functiondeepCopy(obj,cache=newWeakMap()){if(obj==null||typeofobj!=='object'){r......