#1300. 超级回文串

超级回文串

week1-超级回文串

题目背景

前置知识:判断一个字符串是否为回文串

题目描述

对于一个字符串 SS,其被称作回文串,当且仅当这个字符串从左往右读和从右往左读都是相同的。例如 abcd 不是回文串,而 abba 是回文串。

我们现在规定,一个字符串 SS 为超级回文串,当且仅当(定义 S|S| 为字符串长度):

  • SS 本身为回文串
  • 如果 S|S| 为偶数,则这个字符串的前 S2\dfrac{|S|}{2} 个字符原顺序排列的字符串为回文串;这个字符串的后 S2\dfrac{|S|}{2} 个字符原顺序排列的字符串也为回文串。
  • 如果 S|S| 为奇数,则这个字符串的前 S12\dfrac{|S|-1}{2} 个字符原顺序排列的字符串为回文串;这个字符串的后 S12\dfrac{|S|-1}{2} 个字符原顺序排列的字符串也为回文串。

例如:abba 不是超级回文串,虽然它是回文串,但是 abba 不是回文串;abaaba 是超级回文串,它自身是回文串,而且 abaaba 都是回文串。因此,abadaba 是超级回文串。

现在给了你一个字符串 SS,请问这个字符串是否为超级回文串。

输入格式

首先输入一个正整数 TT,表示有 TT 个字符串。

接下来 TT 行,每行输入一个字符串 SS

输出格式

共输出 TT 行。若第 TT 个字符串为超级回文串,则输出 Yes,否则输出 No

样例 #1

样例输入 #1

4
abcd
abba
abaaba
abadaba

样例输出 #1

No
No
Yes
Yes

提示

样例解释:

样例 11 已经在题面中得到解释。

样例 22 符合前 40%40\% 数据的条件。

样例 33 符合下述条件:T=10,2S100T=10,2 \leq |S| \leq 100SS 仅由大小写字母和数字组成。

对于 40%40\% 的数据,2S92 \leq |S| \leq 9,且字符串仅由数字组成,且不为 00 开头。

对于所有数据,1T1001 \leq T \leq 1002S10002 \leq |S| \leq 1000SS 仅由大小写字母和数字组成。