代码:
#include<iostream>
#include<unordered_set>
#include<string>
using::std::unordered_set;
using::std::string;
using::std::max;
class Solution{
public:
unordered_set<char> slen;
int lengthoflongestsubstring(string s)
{
int p=-1,len=0;
int n = s.size();
for(int i=0;i<n;i++)
{
if(i!=0)
{
slen.erase(s[i-1]);
}
while(p+1<n&&!slen.count(s[p+1]))
{
slen.insert(s[p+1]);
p++;
}
len = max(len,p-i+1);
}
std::cout << len << ‘\n‘;
return len;
}
};
int main()
{
Solution sol;
string s = "abcdefab";
sol.lengthoflongestsubstring(s);
return 0;
}
测试结果:
无重复字符的最长字串(C++实现)
原文:https://www.cnblogs.com/shiheyuanfang/p/13584675.html