华为OD机考:OD统一考试D卷+C卷+A卷+B卷+刷题OJ
真题目录:真题目录(D卷 + C卷 + B卷 + A卷) + 考点说明
必刷专栏:最新2024华为OD机试(Java/JS/Py/C/C++)+ OJ
在线OJ :点击立即刷题,模拟真实机考环境
华为OD面试真题精选:华为OD面试真题精选
题目描述
给定一个字符串s,找出这样一个子串:
- 该子串中任意一个字符最多出现2次
- 该子串不包含指定某个字符
请你找出满足该条件的最长子串的长度
输入描述
第一行为:要求不包含的指定字符,为单个字符,取值范围[0-9a-zA-Z]
第二行为:字符串s,每个字符范围[0-9a-zA-Z],长度范围[1, 10000]
输出描述
一个整数,满足条件的最长子串的长度;
如果不存在满足条件的子串,则返回0
用例
输入 | D ABC123 |
---|---|
输出 | 6 |
说明 | 无 |
输入 | D ABACA123D |
---|---|
输出 | 7 |
说明 | 无 |
代码思路
- 读入要排除的字符和字符串s。
- 定义左右指针和最长子串长度maxLength,初始化为0。
- 遍历字符串s,对于每个字符:
- 如果当前字符是要排除的字符,更新最长子串长度为当前左右指针之差,将左右指针都移动到下一