马拉车(Manacher)

欢迎在评论区留言和订阅专栏!

马拉车算法(Manacher)是一种常见的字符串算法。下面我就来讲一讲。

1.简介

Manacher算法是一种快速判断字符串最长回文长度的一种字符串算法,分为三个步骤:预处理、加速盒子和主算法

2.代码

1.预处理

string b = "@";
char a[200005];
int n, r, m, ans, d[200005];

void pre(){
	for (ll i = 0; i < n; i++){
    	b += '#';
        b += a[i];
    }
    
    b+='#';
    //如果字符串是"asda",那么处理后的字符串就是"@#a#s#d#a#",为以后的算法做准备。
}

2.加速盒子(提示:这是以中

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

c++算法大全 文章被收录于专栏

本专栏收集了c++大部分基础算法,附有简介和代码。

全部评论
还有,为啥要加#呀?
2 回复 分享
发布于 08-28 17:27 北京
学会了!
2 回复 分享
发布于 08-27 15:45 北京
时间复杂度应该是O(n)
点赞 回复 分享
发布于 09-02 11:38 北京
时间复杂度是多少?
点赞 回复 分享
发布于 09-02 11:37 北京

相关推荐

不愿透露姓名的神秘牛友
12-06 15:43
阿里国际 行业运营 18x16+0.8x12+18(签字费)+0.8(安家费) 大专
点赞 评论 收藏
分享
评论
4
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务