CF391B Word Folding
题目描述
解决这个问题你将获得5分。
Manao发明了一种新的字符串操作,称为折叠。每次折叠都发生在一对连续的字母之间,并将字符串的第二部分放置在第一部分之上,方向相反,并与折叠的位置对齐。使用这种操作,Manao将字符串转换成一个结构,该结构的层级数比执行的折叠操作数多一。
我们将使用'|'字符来表示折叠的位置。例如,单词"ABRACADABRA"写成"AB|RACA|DAB|RA"表示它已经被折叠了三次:第一次,在最左边的'B'和'R'字母之间;第二次,在'A'和'D'之间;第三次,在最右边的'B'和'R'字母之间。
以下是几个折叠字符串的示例:
```
"ABCDEF|GHIJK" | "A|BCDEFGHIJK" | "AB|RACA|DAB|RA" | "X|XXXXX|X|X|XXXXXX"
| | | XXXXXX
KJIHG | KJIHGFEDCB | AR | X
ABCDEF | A | DAB | X
| | ACAR | XXXXX
| | AB | X
``` 在实际折叠后,字符串会形成一个多层的结构。例如,"ABCD|EFGH|IJ|K"折叠后的结构: ```
K
IJ
HGFE
ABCD
``` 在这个结构中,每一层都是前一层的一部分字母的反向排列。 Manao注意到,每个折叠字符串都可以看作是由几个字母堆组成的。例如,在前面的示例中,有四个堆,从底部到顶部可以读作"AHI"、"BGJK"、"CF"和"DE"(这只是文本描述,并非实际堆)。 现在,Manao想知道,在给定的单词上使用折叠操作,他能构建出的最高的相同字母堆是什么。注意,堆中不应有空隙,并且应从最底层开始。
"ABCDEF|GHIJK" | "A|BCDEFGHIJK" | "AB|RACA|DAB|RA" | "X|XXXXX|X|X|XXXXXX"
| | | XXXXXX
KJIHG | KJIHGFEDCB | AR | X
ABCDEF | A | DAB | X
| | ACAR | XXXXX
| | AB | X
``` 在实际折叠后,字符串会形成一个多层的结构。例如,"ABCD|EFGH|IJ|K"折叠后的结构: ```
K
IJ
HGFE
ABCD
``` 在这个结构中,每一层都是前一层的一部分字母的反向排列。 Manao注意到,每个折叠字符串都可以看作是由几个字母堆组成的。例如,在前面的示例中,有四个堆,从底部到顶部可以读作"AHI"、"BGJK"、"CF"和"DE"(这只是文本描述,并非实际堆)。 现在,Manao想知道,在给定的单词上使用折叠操作,他能构建出的最高的相同字母堆是什么。注意,堆中不应有空隙,并且应从最底层开始。
输入格式
输入将包含一行,该行包含一个由$ n $个字符组成的字符串,其中$ 1 \le n \le 1000 $,且字符串中不包含空格。字符串中的所有字符都将是大写字母。
这个问题没有子问题。正确提交将获得5分。
输出格式
输出一个整数——在给定的字符串上进行有效的折叠操作后,能够看到的由相同字符组成的最大堆的大小。
说明/提示
Consider the first example. Manao can create a pile of three 'A's using the folding "AB|RACAD|ABRA", which results in the following structure:
`
ABRA
DACAR
AB
`In the second example, Manao can create a pile of three 'B's using the following folding: "AB|BB|CBDB". `
CBDB
BB
AB
`Another way for Manao to create a pile of three 'B's with "ABBBCBDB" is the following folding: "AB|B|BCBDB". `
BCBDB
B
AB
`In the third example, there are no folds performed and the string is just written in one line.
ABRA
DACAR
AB
`In the second example, Manao can create a pile of three 'B's using the following folding: "AB|BB|CBDB". `
CBDB
BB
AB
`Another way for Manao to create a pile of three 'B's with "ABBBCBDB" is the following folding: "AB|B|BCBDB". `
BCBDB
B
AB
`In the third example, there are no folds performed and the string is just written in one line.