我遇到一个非常奇怪的问题。当我讨论这个代码示例时,我得到了一些错误测试。错误测试输入是“pwwkew”“ynyo”等等。但是,当我在VS中调试它时,我得到了正确的答案?有什么问题?有人可以帮忙吗?
这是我的解决方案: 我读取了元素字符串,并在unordered_set的末尾插入元素。当一个角色已经存在于该角色中时,删除该角色之前的所有元素。因此,该集合的最大尺寸始终存在就是答案。
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int maxLength=0;
unordered_set<char> sMap;
unordered_set<char>::iterator iterHit;
for(auto iter=s.begin();iter!=s.end();iter++){
if(sMap.end()==(iterHit=sMap.find(*iter))){
sMap.insert(sMap.end(),*iter);
}
else{
maxLength=max(maxLength,static_cast<int>(sMap.size()));
sMap.erase(sMap.begin(),++iterHit);
sMap.insert(sMap.end(),*iter);
}
}
maxLength=max(maxLength,static_cast<int>(sMap.size()));
return maxLength;
}
};