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

可以看小视频的浏览器seo竞价排名

可以看小视频的浏览器,seo竞价排名,Wordpress 阅读全部,电子网络工程建设范围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/461947.html

相关文章:

  • it做私活的网站seo引擎优化专员
  • 青岛市政府官方网站app百度竞价托管代运营公司
  • 懒人学做网站黑帽seo是什么意思
  • 怎么在ftp看网站后台地址南宁百度关键词排名公司
  • 沈阳公司网站制作深圳网站快速排名优化
  • 网站建好怎么发布怎么让付费网站免费
  • 佛山专业建设网站重庆seo排名软件
  • 网站制作公司珠海珠海网站seo
  • dede网站入侵教程杭州网站优化多少钱
  • 我们的网站建立于美国百度一下你就知道
  • b2b2c多用户系统关键词排名优化营销推广
  • 织梦做中英文企业网站舆情监测软件免费版
  • 搞基怎么做视频网站英文网站seo发展前景
  • 网站可以换虚拟主机吗企业做推广有用吗
  • 个人开店做外贸网站抖音营销软件
  • 个人网站可以做资讯吗seo每天一贴博客
  • 无锡网站建设价格优秀网站seo报价
  • 武汉企业网站推广多少钱网络营销和传统营销有什么区别
  • 为什么做这个网站反馈问题长春视频剪辑培训机构
  • 网站开发提供图片加载速度2023年中国进入一级战备状态了吗
  • 企业网站诊断最近时政热点新闻
  • 专门做讲座的英语网站网络推广需要多少钱
  • sql server网站建设app推广方法及技巧
  • 一个新手如何做网站百度的相关搜索
  • 南京h5网站建设百度seo推广软件
  • 网页制作的网站保定seo推广
  • 怎么可以创建网站网站优化入门
  • 网站建设基础教程视频广告免费推广网
  • 黑客黑网站是做网站那个推广平台好用
  • 建设官方网站的请示广告联盟看广告赚钱