#2700. 字符个数
字符个数
【题目描述】
给定一个字符串,由字母和数字构成。将该字符串从某个点断开,分成两个部分,设这两个部分为 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。
【样例 2 解释】
字符串"abcdabcdabcd1122331111abcdabcdabcd",A字符串为"abcdabcdabcd11223",B字符串为"31111abcdabcdabcd",C字符串为"31111abcdabcdabcd"时,A和C字符串的不同字符个数为6个。
【数据范围】
| 测试点编号 | 字符串长度的范围 |
|---|---|
| 1 | ≤10 |
| 2~10 | ≤100 |
| 11~14 | ≤2000 |
| 15~20 | ≤10000 |
相关
在下列比赛中: