UOJ Logo

NOI.AC

1S 256MB
GoodBad[-90]
Statistics

回文串

题目描述

D 最近在学习回文串的有关知识。对于字符串 S=S1S2S3Sn1Sn,记 S反串 SR=SnSn1Sn2S2S1。我们称字符串 S回文串,当且仅当 S=SR

D 发现回文串很少,他决定定义一些新的东西。定义字符串 S=S1S2S3Sn1SnT=T1T2T3Tm1TmS1S2S3Sn1SnT1T2T3Tm1Tm,记作 ST

D 发现,字符串之和满足结合律但不满足交换律,即 (AB)C=A(BC) 成立,但 AB=BA 不一定成立。

D 定义字符串 S 的一个拆分,为满足 A1A2A3AL 的字符串序列 A=[A1,A2,,AL]。定义这样的一个拆分的长度L

D 定义一个拆分的反拆分为序列 AR=[AL,AL1,,A2,A1]。定义一个拆分是回文的,当且仅当 A=AR(两个序列相等定义为同样位置的元素对应相等)。

D 现在给出了字符串 S,想要求出 S 的最长(即长度最大)的回文拆分序列有多长。请你帮帮他。

输入格式

本题包含多组数据,输入的第一行为一个整数 T,表示测试数据组数。

接下来 T 行,每行一个字符串,表示这组数据中的 S。保证 S 仅有小写字母组成。

输出格式

对于每组测试数据,输出一行一个整数表示答案。

样例输入 1

4
bonobo
deleted
racecar
racecars

样例输出 1

3
5
7
1

样例解释 1

以下为每组测试数据中的最优方案:

  • bo / no / bo
  • d / e / let / e / d
  • r / a / c / e / c / a / r
  • racecars

样例输入输出 2

见下发文件 ex_palindrome2.in/out

数据规模与约定

本题共 10 个测试数据,每个测试数据 10 分。以下为部分分分布(S 表示字符串 S 的长度):

对于前 10% 的数据,1S5
对于另 20% 的数据,1S30
对于另 20% 的数据,1S200
对于另 20% 的数据,1S2000
对于另 20% 的数据,1S105
对于 100% 的数据,1T201S106,保证 S 仅有小写字母组成。

时间限制2s

空间限制512MB

样例数据

样例数据