当前位置: 首页 > wzjs >正文

网站开发最新架构网站优化排名的方法

网站开发最新架构,网站优化排名的方法,口腔医院东莞网站建设,顺德网站建设多少钱manacher 算法详解 对应解释网站 Manacher - OI Wiki (oi-wiki.org) Manacher(马拉车)————O(n)回文子串 - 沉~杉 - 博客园 (cnblogs.com) 背景 简介 Manacher算法是一种用于寻找字符串中最长回文子串的高效算法。它的时间复杂度为O(n)&#xff…

manacher 算法详解

对应解释网站

Manacher - OI Wiki (oi-wiki.org)

Manacher(马拉车)————O(n)回文子串 - 沉~杉 - 博客园 (cnblogs.com)

背景

在这里插入图片描述

简介

Manacher算法是一种用于寻找字符串中最长回文子串的高效算法。它的时间复杂度为O(n),其中n是字符串的长度。该算法由Glenn Manacher在1975年提出,并在后续的研究中被不断完善。

算法思想

Manacher算法的核心思想是利用已经计算出的回文信息来减少重复计算。具体来说,当我们在字符串中找到一个回文串时,可以利用这个回文串的对称性来推断出其他位置可能存在的回文串。

算法步骤

  1. 预处理

    • 为了简化处理过程,通常会在原字符串的每个字符之间插入一个特殊字符(比如’#'),并在字符串的开始和结束处各添加一个特殊字符。这样做是为了避免边界问题,并且使得回文串既可以是奇数长度也可以是偶数长度。

    例如,对于字符串"abcba",预处理后变为"#a#b#c#b#a#"

    在此举个例子:s=‘abbadcacda’先转化成s_new=’KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲a#b#b#a#d#c#a#c…‘与’\0’,是边界)

    这样原串中的偶回文(abba)与奇回文(adcacda),变成了(#a#d#d#a#)与(#a#d#c#a#c#d#a#)两个奇回文

  2. 定义数组P

    • 定义一个数组P,其中P[i]表示以第i个字符为中心的最大回文半径(不包括中心字符本身)。

例子如下: img

  1. 动态规划

    • 初始化两个变量CR,其中C表示当前回文中心的位置,R表示当前回文右边界的位置。

    • 遍历预处理后的字符串,对于每个位置 i:

      • 如果i < R,那么可以利用对称性,找到i关于C的镜像位置mirr = 2 * C - i,并利用已知的P[mirr]值来初始化P[i]的最小值。
      • 如果i + P[i] > R,则需要从R + 1开始扩展回文串,直到找到不成立的情况为止。
      • 更新CR的值,如果i + P[i] > R,则C = iR = i + P[i]
  2. 查找最长回文子串

    • 在遍历过程中,记录下最大的P[i]值及其对应的索引,最后根据这个索引和值就可以找出最长的回文子串。

示例代码

def manacher(s):# Preprocess the string to avoid edge casest = '#' + '#'.join(s) + '#'n = len(t)p = [0] * ncenter, right = 0, 0for i in range(n):mirror = 2 * center - iif i < right:p[i] = min(right - i, p[mirror])# Attempt to expand palindrome centered at iwhile i + p[i] + 1 < n and i - p[i] - 1 >= 0 and t[i + p[i] + 1] == t[i - p[i] - 1]:p[i] += 1# If palindrome centered at i expands past right,# adjust center based on expanded palindrome.if i + p[i] > right:center, right = i, i + p[i]# Find the maximum element in pmax_len, center_index = max((n, i) for i, n in enumerate(p))return s[(center_index - max_len) // 2: (center_index + max_len) // 2]# Example usage
print(manacher("abcbabcbabcba"))  # Outputs: "abcbabcba"
http://www.dtcms.com/wzjs/15014.html

相关文章:

  • 番禺网站建设开发英文外链平台
  • wordpress 3.8 问题广州:推动优化防控措施落地
  • 网站改版原因郑州网站优化排名
  • 猎头建设网站营销案例100例小故事及感悟
  • 别人给公司做的网站字体侵权shopify seo
  • 有没有专门的销售公司网络推广和信息流优化一样么
  • 专业网站建设报价排名轻松seo 网站推广
  • 中山网站制作建设代写平台
  • 自己怎么制作一个公众号寰宇seo
  • 网站规划设计报告平台关键词排名优化
  • 四川企业网站建设爱站网关键词
  • 做物流的可以在那些网站找客户端大连百度关键词排名
  • 新公司做网站怎么做黑马程序员培训机构在哪
  • 政府网站做3屏适配广州今日新闻头条新闻
  • 西安网站优化维护品牌营销战略
  • wap自助建论坛网站seo排名赚挂机
  • 亿建联网站是谁做的技术培训
  • 有免费的网站建设沧州网站建设推广
  • 做外贸都用什么网站seo检查工具
  • 织梦做网站要多长时间yy直播
  • 建筑类期刊排名百度seo可能消失
  • 建企业网站要多少钱网络优化培训骗局
  • 旅游的网站怎么做的百度下载
  • 如何做网站seo诊断企业网络组建方案
  • 海洋馆网站建设灰色行业seo
  • 国外网站做freelancer十大搜索引擎地址
  • 北京公司网站制作价格b站推广入口2023mmm无病毒
  • 网站推广该怎么做网站seo优化方案策划书
  • 九江建企业网站营销型网站建设排名
  • 网站建设合同书样本北京网站开发