知识点
manacher算法可以在时间复杂度为O(n)的情况下,求出一个字符串的最长回文子串的算法。
一 . 实现步骤
① 在字符串的各个字母中间加上一个字符,使其变成奇数字符串。对于原来是偶数字符串来说,添加的字符“#”作为对称中心;原来是奇数字符串的最中间的字母为对称中心。
② 设字符串的对称中心为mid,r表示最长回文串的右端点在哪里,i 表示当前扫描到的节点,j 节点表示 i 节点关于字符串对称中心对称的位置。
模板题
题目描述
给出一个只由小写英文字符
manacher算法可以在时间复杂度为O(n)的情况下,求出一个字符串的最长回文子串的算法。
一 . 实现步骤
① 在字符串的各个字母中间加上一个字符,使其变成奇数字符串。对于原来是偶数字符串来说,添加的字符“#”作为对称中心;原来是奇数字符串的最中间的字母为对称中心。
② 设字符串的对称中心为mid,r表示最长回文串的右端点在哪里,i 表示当前扫描到的节点,j 节点表示 i 节点关于字符串对称中心对称的位置。
给出一个只由小写英文字符