最长回文子串

中心扩展法:枚举每个中心向两侧扩展,记录最长回文。

Manacher 回文串
第 01 / 19 步
字符串 "babad"(长度 5)。用中心扩展法求最长回文子串:枚举每个中心,向两边扩展。 比较 0 · 交换 0
伪代码

				
					
					1
					// 最长回文子串(中心扩展法)
				
			
				
					
					2
					best ← ""
				
			
				
					
					3
					for 每个中心 (奇中心 i 与偶中心 i, i+1 间隙) do
				
			
				
					
					4
					  l ← 中心; r ← 中心
				
			
				
					
					5
					  while 0 <= l-1 && r+1 < n && text[l-1] == text[r+1] do
				
			
				
					
					6
					    l--; r++                // 向两边扩展
				
			
				
					
					7
					    if len(text[l..r]) > best.length: best ← text[l..r]
				
			
				
					
					8
					  end while
				
			
				
					
					9
					end for
				
			
01 / 19
速度