1. 题型
- 最长回文子串
- 回文子串的个数
2. 暴力求解
枚举出所有的子串,然后再判断这些子串是否是回文。假设字符串的长度为 n。我们可以看出前者会用 O ( n 2 ) O(n^2) O(n2) 的时间枚举出所有的子串 s [ l i ⋯ r i ] s[l_i\cdots r_i] s[li⋯ri] 然后再用 O ( r i − l i + 1 ) O(r_i-l_i+1) O(ri−li+1) 的时间检测当前的子串是否是回文,整个算法的时间复杂度是 O ( n 3 ) O(n^3) O(n3)。
3. 中心扩展算法
枚举每一个可能的回文中心,然后用两个指针分别向左右两边拓展,当两个指针指向的元素相同的时候就拓展,否则停止拓展。
枚举回文中心的是 O ( n ) O(n) O(<