题目描述
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
附上C++ 实现链接并附上动画:
看了上面链接的动图,就明白最长子串的核心问题是滑动窗口的大小。
Java 代码实现
private static int lengthOfLongestSubString(String s)
{
int length = s.length();
int start = 0;
int end = 0;
int res = 0;
Set<Character> set = new HashSet();
while(start < length && end < length)
{
if(set.contains(s.charAt(end)))
{
set.remove(s.charAt(start++));
}else
{
set.add(s.charAt(end++));
res = Math.max(res, end-start);
}
}
return res;
}