#P2478. Seek the Name

Seek the Name

题目来源

POJ 2572 Seek the Name,

问题描述

这只小猫非常有名,以至于许多夫妇翻山越岭来到比特兰,请求小猫为他们刚出生的宝宝取名。他们既想得到名字,同时也想沾上这份名气。为了摆脱这份枯燥的工作,这只富有创新精神的小猫想出了一个简单却奇妙的算法:

步骤 1:将父亲的名字和母亲的名字连接起来,形成一个新字符串 SS

步骤 2:找出字符串 SS 的一个合适的前缀 - 后缀字符串(该字符串既是 SS 的前缀,也是 SS 的后缀)。

例如: 爸爸的名字是 'ala', 妈妈的名字是 'la', 我们就有 SS = 'ala'+'la' = 'alala'。SS 的前缀可能是 {'a', 'ala', 'alala'}。给定字符串 SS,你可以帮助小猫写一个程序计算 SS 可能的前缀的长度吗?你搞得定的话,他可能会感谢你,帮你的娃取名。

输入格式

包含多组数据,每组测试用例占一行,内容为上面说的字符串 SS

数据范围和限制

SS 值包含小写字符,1S4000001 \le |S| \le 400000

输出格式

对于每一组测试数据,输出单独一行,包含一组升序排列的组织,表示宝宝的姓名的可能长度。

样例

ababcababababcabab
aaaaa
2 4 9 18
1 2 3 4 5