\(Manacher\) 算法
簡介
英文: \(Manacher\),
中文: 馬拉車 ,
\({\color{OrangeRed}形}\) \({\color{Gold}像}\) \({\color{GreenYellow}生}\) \({\color{Cyan}動}\)
功能
比較單一,求最長回文串
這里引入一個好的求回文串的方法
- 我們在每個字符之間加一個 \(\&\) ,從頭往后枚舉中間位置,挨個比較
- 好處是避免的不存在中間位置的回文串,即回文串是偶數
- 如 \(ababac\) 變換后 \(\&a\&b\&a\&b\&a\&c\&\)
- 這樣所有的回文串就可以變成奇數,
- 對應半徑長度 : \(11214161412121\)
- 回文串半徑長度 : \(00103050301010\)