#6685. 最长不含重复字符的子串
最长不含重复字符的子串
最长不含重复字符的子串
题目描述
给定一个字符串 s,请你找出其中最长的不包含重复字符的连续子串,输出该子串的长度。
注意:
- 子串必须是连续的字符序列;
- 子串中的每个字符最多出现一次;
- 如果字符串为空,则最长长度为
0。
输入格式
输入一行,一个字符串 s。
输出格式
输出一个整数,表示最长不含重复字符的连续子串长度。
样例输入1
abcabcbb
样例输出1
3
样例解释
字符串:
abcabcbb
其中最长的不含重复字符的子串有:
abc
长度:
3
其他长度相同的答案:
bca
cab
均满足要求。
样例输入2
bbbbb
样例输出2
1
样例解释
所有字符都是:
b
只能选择一个字符:
b
因此答案为:
1
样例输入3
pwwkew
样例输出3
3
样例解释
最长合法子串:
wke
长度:
3
数据范围
对于所有测试数据:
0 ≤ |s| ≤ 100000
其中:
s 只包含小写英文字母
提示
本题可以使用:
- 双指针
- 滑动窗口
- 计数数组
维护一个窗口:
[left ... right]
保证:
窗口内没有重复字符
当出现重复字符时:
移动左指针,直到窗口重新满足条件。
评分标准
| 测试点 | 数据规模 | 要求 |
|---|---|---|
| 20% | n≤100 | 暴力枚举 |
| 40% | n≤5000 | 优化判断 |
| 100% | n≤100000 | O(n)滑动窗口 |
输入输出说明
输入
abcabcbb
表示:
字符串长度为:
8
字符串内容:
a b c a b c b b
输出
3
表示:
最长合法连续子串长度为:
3
知识标签
双指针
滑动窗口
计数数组
字符串
哈希思想
难度定位
CSP-J 入门/提高
相关
在以下作业中: