其实很简单,考虑一个函数:f(i) , 代表 固定左端点i,右端点最远能达到的下标,用一个动画来演示一下👇
很容易感觉出来,f(i) 随i 单调非减,因为f(i) 相较于f(i−1) 而言少了一个s[i-1] , 相当于冲突的概率下降了👇
给定一个字符串 s,请你找出其中不含有重复字符的最长子串的长度。
子串是字符串中连续的一段字符。
输入一行字符串 s。
字符串 s 可能包含英文字母、数字、符号和空格。
输出一个整数,表示字符串 s 中不含重复字符的最长子串的长度。
abcabcbb
3
因为无重复字符的最长子串是 abc,所以其长度为 3。
注意,bca 和 cab 也是正确答案。
bbbbb
1
因为无重复字符的最长子串是 b,所以其长度为 1。
pwwkew
3
因为无重复字符的最长子串是 wke,所以其长度为 3。
请注意,答案必须是子串的长度,pwke 是一个子序列,不是子串。
0<=s.length<=5∗104
s 由英文字母、数字、符号和空格组成。
开通会员即可查看完整视频题解: 1.题目讲解 2.思路分析 3.逐行代码手写