Manacher算法
\(Manacher\) 算法
简介
英文: \(Manacher\),
中文: 马拉车 ,
\({\color{OrangeRed}形}\) \({\color{Gold}像}\) \({\color{GreenYellow}生}\) \({\color{Cyan}动}\)
功能
比较单一,求最长回文串
这里引入一个好的求回文串的方法
- 我们在每个字符之间加一个 \(\&\) ,从头往后枚举中间位置,挨个比较
- 好处是避免的不存在中间位置的回文串,即回文串是偶数
- 如 \(ababac\) 变换后 \(\&a\&b\&a\&b\&a\&c\&\)
- 这样所有的回文串就可以变成奇数,
- 对应半径长度 : \(11214161412121\)
- 回文串半径长度 : \(00103050301010\)