01无重复字符的最长子串

无重复字符的最长子串

给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。

示例 1:

输入: s = "abcabcbb"
输出: 3 
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。注意 "bca""cab" 也是正确答案。

示例 2:

输入: s = "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。

示例 3:

输入: s = "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
     请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。
public int lengthOfLongestSubstring(String s) {
  int max = 0;
  Queue<Character> queue = new LinkedList<>();

  char[] charArray = s.toCharArray();
  for (int i = 0; i < charArray.length; i++) {
    while (queue.contains(charArray[i])){
      queue.poll();
    }
    queue.offer(charArray[i]);
    max = Math.max(max,queue.size());
  }
  return max;

}

01无重复字符的最长子串
https://jiajun.xyz/2026/02/02/算法/03滑动窗口/01无重复字符的最长子串/
作者
Lambda
发布于
2026年2月2日
许可协议