题目描述
给定一个字符串s,找出这样一个子串:
- 该子串中任意一个字符最多出现2次
- 该子串不包含指定某个字符
请你找出满足该条件的最长子串的长度
输入描述
第一行为:要求不包含的指定字符,为单个字符,取值范围[0-9a-zA-Z]
第二行为:字符串s,每个字符范围[0-9a-zA-Z],长度范围[1, 10000]
输出描述
第一行为:要求不包含的指定字符,为单个字符,取值范围[0-9a-zA-Z]
第二行为:字符串s,每个字符范围[0-9a-zA-Z],长度范围[1, 10000]
示例1
输入
D
ABC123
输出
6
说明
无
示例2
输入
D
ABACA123D
输出
7
说明
无
解题思路
题目要求我们从给定的字符串 s
中找出一个满足以下两个条件的最长子串:
- 任意一个字符最多出现2次: 子串中的每个字符在子串中出现的次数不能超过2次。
- 子串不包含指定字符: 子串不能包含输入的指定字符。
输出的是满足以上条件的最长子串的长度。如果没有符合条件的子串,则返回0。
示例分析
示例 1
输入:
D
ABC123
输出:
6
分析:
- 排除字符为
D
。 - 字符串
s
为ABC123
。 - 整个字符串
ABC123
不包含字符D
,并且每个字符都没有超过2次,因此整个字符串符合条件。 - 满足条件的最长子串为
ABC123
,长度为6
。
示例 2
输入:
D
ABACA123D
输出:
7
分析:
-
排除字符为
D
。 -
字符串
s
为ABACA123D
。 -
从
s
中找一个最长的子串,该子串:- 不包含字符
D
。 - 任意一个字符出现次数不超过2次。
- 不包含字符
-
在字符串
ABACA123D
中,有多个子串不包含D
,但需要满足字符出现