leecode 3:在vs2017成功但在某些测试中失败,例如“ynyo”“pwwkew”

时间:2018-01-11 13:01:27

标签: unordered-set

我遇到一个非常奇怪的问题。当我讨论这个代码示例时,我得到了一些错误测试。错误测试输入是“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;
    }
};

0 个答案:

没有答案