Manacher算法是 查找一个字符串的最长回文子串的线性算法。俗称“马拉车算法”
所谓回文串就是正序和倒序相同的字符串。
计算字符串最长的回文字符串最简单的思路就是枚举法:
枚举每个字符子串,这种算法的时间复杂度高达O(N^3)
枚举回文串的中点:这种算法的时间复杂度为O(N^2)
而Manacher算法可以在线性时间复杂度内求出一个字符串的最长回文字符串,达到了理论上的下界
参考博客:
Manacher算法是 查找一个字符串的最长回文子串的线性算法。俗称“马拉车算法”
所谓回文串就是正序和倒序相同的字符串。
计算字符串最长的回文字符串最简单的思路就是枚举法:
枚举每个字符子串,这种算法的时间复杂度高达O(N^3)
枚举回文串的中点:这种算法的时间复杂度为O(N^2)
而Manacher算法可以在线性时间复杂度内求出一个字符串的最长回文字符串,达到了理论上的下界
参考博客: