问题 B: 字符个数(string)

内存限制:256 MB 时间限制:2.000 S 标准输入输出
题目类型:传统 评测方式:文本比较 上传者:
提交:37 通过:13

题目描述

题目描述

给定一个字符串,由字母和数字构成。将该字符串从某个点断开,分成两个部分,设这两个部分为 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。

第三个位置为断点,分为两部分:A 为"abA",B 为 "abc"。在 B 中取长度为 3的连续子串,有 "abc",共同的字符个数分别为 2。

因此,字符串"bAabc"同时出现在 A和 C 中的字符个数的最大值为 2。

输入格式

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

输出格式

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

输入输出样例

输入 #1

111111111

输出 #1

1

 

 

输入 #2

abAabc

输出 #2

2

 

输入 #3

bcdabcdabcd1122331111abcdabcdabcd

输出 #3

6

 

【说明/提示】

【样例 1 解释】

字符串"11111111" 不管在哪个位置断点,A和 C 中的不同字符都只有一个"1"。

【样例 2 解释】

字符串"abAabc",如题目中的解释,同时出现在 A和 C 中的字符个数的最大值为 2

【样例 3 解释】

字符串"abcdabcdabcd1122331111abcdabcdabcd",A字符串为"abcdabcdabcd11223",B字符串为"31111abcdabcdabcd",C字符串为"31111abcdabcdabcd"时,A和C字符串的不同字符个数为6个。

数据范围与提示

测试点编号

字符串的长度的范围

1

10

2~10

100

11~14

2000

15~20

10000