5008: OI联盟[202405]T2 字符个数

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:1 解决:1

题目描述

给定一个字符串,由字母和数字构成。将该字符串从某个点断开,分成两个部分,设这两个部分为 A 和 B,A 和 B 都不为空。有一些字符会同时出现在 A 和 B 中。假设 A 的长度小于等于 B的长度,在 B 中取出和 A 长度相等的连续子串,设为 C,统计该子串和 A 共同出现的字符个数。从不同位置断开,取不同子串,同时出现在 A 和 C 中的字符个数是不一样的。求同时出现在 A 和 C 中的字符个数的最大值。
举例:
字符串:"abAabc"
第一个位置为断点,分为两部分:A 为"a",B 为 "bAabc"。在 B 中取长度为 1 的连续子串,有 "b"、"A"、"a"、"b"、"c",共同的字符个数分别为 0,0,1,0,0。
第二个位置为端点,分为两部分:A 为"ab",B 为 "Aabc"。在 B 中取长度为 2 的连续子串,有 "Aa"、"ab"、"bc",共同的字符个数分别为 1,2,1。
依此类推。字符个数最大值为 2。

输入

输入一行字符串,该字符串只包含 'A' - 'Z' 'a'- 'z' '0' - '9'这些字符。

输出

输出一行一个整数,表示同时出现在 A 和 B 中的字符最多的个数。

样例输入 复制

abAabc

样例输出 复制

2

提示

样例2
输入
11111111
输出
1
解释:不管从哪个位置断开,A 和 B 中同时包含的只有 1。
样例2
输入
abcdabcdabcd1122331111abcdabcdabcd
输出
6

对于 100% 的数据,字符串的长度最小为 2, 最大为 100。

来源/分类