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