随笔分类 -  马拉车算法

摘要:题意 给你一个长度为n的字符串,要求往字符串右边添加尽可能少的字符串,使整个字符串为回文串。 思路 尽可能少就是添加 n-该数组的最大回文后缀 个就行。 首先跑一遍马拉车,求得num数组,num[i]为填充字符后的字符串第i位的回文半径,所以num[i]+i==len-1时,此时的回文子串是紧贴右边 阅读全文
posted @ 2020-07-18 00:13 艾尔夏尔-Layton 阅读(204) 评论(0) 推荐(0) 编辑
摘要:简述 Manacher算法,又称马拉车算法,它是用于求一个字符串的最长回文子串长度的算法,时间和空间复杂度为O(n)。 算法思想 求一个字符串的最长回文子串长度,我们如果用暴力来做,我们就要取出这个串的所有子串,然后判断这个子串是不是回文串,复杂度是n方的。 那么马拉车为何如此神奇能做到O(n)呢? 阅读全文
posted @ 2020-07-17 20:33 艾尔夏尔-Layton 阅读(2019) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示