滑动窗口解法
class Solution {
public:
int lengthOfLongestSubstring(string s) {
string subs ;//子串
int max 0,t 0;//max 最大子串长度 t:索引
for (int i 0;i s.size();i ){
t subs.find(s[i]);查找 当前字符在子串中出现的位置
if(t ! -1){//如果找到
if(max subs.size()){//判断当前子串 与 历史最长串的大小
max subs.size();
subs subs.erase(0,t 1);//去掉前t 1个字符
subs s[i];//不管有没有出现 都需要将当前的字符添加到子串中
if(max subs.size()){//最终还是要判断一次 因为如果从来都没有重复过的话 就不会进入if(t ! -1) 也不会更新max了
max subs.size();
return max;
python:
class Solution: def lengthOfLongestSubstring(self, s: str) - int: substr t,max_len 0,0 for i in s: t substr.find(i) if t ! -1: if max_len len(substr): max_len len(substr) substr substr[t 1:] substr i if max_len len(substr): max_len len(substr) return max_len



