网站建设费用价格表网站设计站点管理
  文章目录
 - @[toc]
 - 题目描述
 - 样例输入输出与解释
 - 样例1
 - 样例2
 - 样例3
 
 - 提示
 - Python实现
 - 滑动窗口
 
 
 
 
 
 
文章目录
- @[toc]
 - 题目描述
 - 样例输入输出与解释
 - 样例1
 - 样例2
 - 样例3
 
- 提示
 - Python实现
 - 滑动窗口
 

个人主页:丷从心·
系列专栏:LeetCode
刷题指南:LeetCode刷题指南

题目描述
- 给定一个字符串
s,请你找出其中不含有重复字符的最长子串的长度 
样例输入输出与解释
样例1
- 输入:
s = "abcabcbb" - 输出:
3 - 解释:因为无重复字符的最长子串是
"abc",所以其长度为3 
样例2
- 输入:
s = "bbbbb" - 输出:
1 - 解释:因为无重复字符的最长子串是
"b",所以其长度为1 
样例3
- 输入:
s = "pwwkew" - 输出:
3 - 解释 
- 因为无重复字符的最长子串是
"wke",所以其长度为3 - 请注意,你的答案必须是子串的长度,
"pwke"是一个子序列,不是子串 
 - 因为无重复字符的最长子串是
 
提示
0 <= s.length <= 5 * 10^4s由英文字母、数字、符号和空格组成
Python实现
滑动窗口
class Solution:def lengthOfLongestSubstring(self, s: str) -> int:char_set = set()n = len(s)end, res = 0, 0for start in range(n):if start != 0:# 左指针向右移动一格, 移除一个字符char_set.remove(s[start - 1])while end < n and s[end] not in char_set:# 不断地移动右指针char_set.add(s[end])end += 1res = max(res, end - start)return res
 
