- 今天白天很忙,晚上非常的困。不过下班之前还是坚持着刷了一道题。
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
char[] chars = s.toCharArray();
int right = 0;
Set<Character> set = new HashSet<>(16);
int maxLength = 0;
for (int left = 0; left < chars.length; left++) {
while (right < chars.length && !set.contains(chars[right])) {
set.add(chars[right]);
right++;
maxLength = Math.max(set.size(), maxLength);
}
set.remove(chars[left]);
}
return maxLength;
前面的题还不难,但是我的方法估计不是最优解,我现在不打算在一道题上耗费太多时间去研究,先做出来,有了一定量的积累后,再回过头来研究更优的做法。不过有别的看法的小伙伴也可以分享出来,欢迎指导~