问题:3. 无重复字符的最长子串,
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串的长度。
解法(类似双指针)
int lengthOfLongestSubstring(string s) {
unordered_set<char>ch;
int len = s.length();
int end = 0;
int lensubStr = 1;
while (end < len)
{
//出现过
if (ch.count(s[end]))
{
if (ch.size() > lensubStr)
{
lensubStr = ch.size();
}
unordered_set<char>::iterator it = ch.find(s[end]);
it++;
//删除ch中从头到跟s[end]相同的所有元素
ch.erase(ch.begin(), it);
}
ch.insert(s[end]);
end++;
}
return lensubStr;
针对用例string s = "pwwkew" 在vs 上运行结果:
3
F:\音视频面试准备\leetcode\others\3lengthOfLongestSubstring\Debug\3lengthOfLongestSubstring.exe (进程 15912)已退出,代码为 0。
要在调试停止时自动关闭控制台,请启用“工具”->“选项”->“调试”->“调试停止时自动关闭控制台”。
按任意键关闭此窗口. . .
但实际在leetcode 上提交确是4
有知道是什么情况吗?