题目描写叙述:
推断能否将字符串S分成三段非空回文串。
解题思路:
源码:
#include <cstdio> #include <algorithm> #define MAXN 20010 using namespace std; int n; char d[MAXN];///原始字符串 char st[MAXN*2];///经过manacher处理之后的字符串 int p[MAXN*2];///保存回文串半径,ps每一个回文串长度一定为奇数 int ll[MAXN*2];///第一个回文串可能的全部半径 int rr[MAXN*2];///第三个回文串可能的全部半径 void manacher(){///manacher算法,能够去查询了解一下 int i; st[0]='$'; st[1]='#'; for(i=1;d[i]!='