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

网建设门户网站2023免费b站推广大全

网建设门户网站,2023免费b站推广大全,网站首页制作怎么做的,网站建设人员的组织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/246606.html

相关文章:

  • 网站建设合同的注意事项如何优化关键词排名快速首页
  • 一个网站建设的成本怎么开发一款app软件
  • 响应式网站建设模板下载搜索引擎优化指南
  • 网站做压测淘宝搜索关键词排名查询工具
  • 西宁哪家网络公司做网站搜索引擎seo优化怎么做
  • 西安专业做网站的包头整站优化
  • 南开区网站建设网站优化的方法有哪些
  • 网站策划应该怎么做关键词查询网址
  • 禅城网站建设多少钱站长工具seo综合查询源码
  • 以遇见为主题做网站宁波seo推荐
  • 宝盈集团直营网站怎么做网络公司网站模板
  • 品牌网站建设顾问网站推广多少钱
  • 茂名市城市建设档案馆网站公司网站模版
  • 个人网站设计摘要百度广告投放公司
  • 网站营销中常见问题seo整站优化多少钱
  • p2p网站如何建设百度网站app下载
  • 去国外做外卖网站seo搜索引擎优化工程师招聘
  • 重庆网站建设yunhuit友情链接查询结果
  • 南宁seo站内关键词优化客户资源买卖平台
  • 学动漫设计去哪个学校当阳seo外包
  • 武汉政鑫建设有限公司网站免费建立一个网站
  • 怎样做网站优化长沙做网站推广
  • 免费的外贸网站推广方法seo jsbapp9
  • 二次元网站模板网络推销
  • 网站建设费用的会计网站怎样做推广
  • 哪个网站做房子团购制作一个网站的费用是多少
  • 推广网站的图片怎么做百度推广账户登录
  • 实力网站建设深圳优化服务
  • 泉州城乡住房建设厅网站ui设计
  • 泰安做网站的今日热搜榜排名