首页 > 其他分享 >LCP 最长公共前缀(一个字符串中,两个位置的后缀的最长公共前缀)

LCP 最长公共前缀(一个字符串中,两个位置的后缀的最长公共前缀)

时间:2022-10-05 16:45:09浏览次数:55  
标签:前缀 lcp 后缀 int 公共 字符串 最长

LCP也可以用来进行一个字符串的子字符串的比较

需要预处理lcp[i][j]数组,表示从i开始的后缀和从j开始的后缀的最长公共前缀

lcp[i][j]可以从lcp[i+1][j+1]递推过来

O(n^2)预处理 O(1)查询

和字符串哈希相比,预处理较慢,但是更加准确

int lcp[4010][4010];

memset(lcp,0,sizeof(lcp));

    for(int i=n;i>=1;i--)
    {
        for(int j=n;j>=1;j--)
        {
            if(str[i]==str[j])
            {
                lcp[i][j]=lcp[i+1][j+1]+1;
            }
        }
    }
View Code

 

标签:前缀,lcp,后缀,int,公共,字符串,最长
From: https://www.cnblogs.com/ydUESTC/p/16755815.html

相关文章

  • 前缀、中缀、后缀表达式
    前缀、中缀、后缀表达式是对表达式的不同记法,其区别在于运算符相对于操作数的位置不同,前缀表达式的运算符位于操作数之前,中缀和后缀同理举例:中缀表达式:1+(2+3)×4-5......
  • 无重复字符的最长子串 leetcode 3 C++ 滑动窗口
    C++版本的滑动窗口解决方案class Solution {public:    int lengthOfLongestSubstring(string s) {            if(s.empty()) return 0; ......
  • 树上前缀和
    设sum[i]表示节点i到根节点的权值总和。如果是点权,x,y路径上的和为sum[x]+sum[y]-sum[lca]-sum[fa[lca]]如果是边权,x,y路径上的和为sum[x]+sum[y]-2*sum[lca]边前缀和......
  • 如何推前缀和式子
    我们设\(\operatorname{f}_k(n)=\sum\limits_{i=1}^{n}i^k\)如果已知\(\operatorname{f}_{k-1}(n)\),如何推导至\(\operatorname{f}_k(n)\)?首先发现:\[\operatorna......
  • leetcode 235. Lowest Common Ancestor of a Binary Search Tree 二叉搜索树的最近公
    一、题目大意给定一个二叉搜索树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树T的两个结点p、q,最近公共祖先表示为一个结点......
  • lcs 最长公共子序列
    #include<cstdio>#include<cstring>#include<algorithm>usingnamespacestd;constintN=1000;chara[N],b[N];intdp[N][N];intmain(){intlena,lenb,i......
  • 删除名字含有特定前缀的git仓库分支
    我想保留一个仓库中以特定字符串为前缀的分支,还想按照commit时间保留同一前缀的指定数量的分支,删除分支的脚本如下:#!/usr/bin/envpython#-*-coding:utf8-*-#coding:u......
  • 424. Longest Repeating Character Replacement 改变k个字母,形成最长的连续
    Youaregivenastring s andaninteger k.YoucanchooseanycharacterofthestringandchangeittoanyotheruppercaseEnglishcharacter.Youcanperfor......
  • 中缀表达式转后缀、前缀记录
    波兰表示法与逆波兰表示法它们都是对表达式的记法,因此也被称为前缀记法、后缀记法。它们之间的区别在于运算符相对与操作数的位置不同:前缀表达式的运算符位于与其相关的操......
  • 难度中等-3. 无重复字符的最长子串
    先找出i位置不含有重复字符的最长字符然后循环i,找出最长的 给定一个字符串s,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1:输入:s="abcabcbb"......