C++ Leetcode:为什么**提交**和**运行代码时**字符串类**的``at``方法的行为不同**

C++ Leetcode:为什么**提交**和**运行代码时**字符串类**的``at``方法的行为不同**,c++,C++,我正在做一个关于leetcode的问题。此问题的描述如下: 给定一个字符串s,查找最长子字符串t的长度,该子字符串最多包含2个不同字符 例1: 例2: 在使用at方法之前,我试着做了一些比较 因为所有的输入都必须是有效的 我的问题是,对于InputAAC,我单击了RunCode按钮,它工作正常 但是,当我单击Submit时,它将失败。事实上,我多次碰到这个问题。我只是想知道这是否是一个编译器问题?您未能初始化变量计数,因此您的程序具有未定义的行为。您提供的链接需要一个帐户如何失败?编译错误?减速

我正在做一个关于leetcode的问题。此问题的描述如下:

给定一个字符串s,查找最长子字符串t的长度,该子字符串最多包含2个不同字符

例1:

例2:

在使用at方法之前,我试着做了一些比较

因为所有的输入都必须是有效的

我的问题是,对于InputAAC,我单击了RunCode按钮,它工作正常


但是,当我单击Submit时,它将失败。事实上,我多次碰到这个问题。我只是想知道这是否是一个编译器问题?

您未能初始化变量计数,因此您的程序具有未定义的行为。

您提供的链接需要一个帐户如何失败?编译错误?减速?错误信息是什么?run和submit之间的区别在于测试用例的数量和复杂性。前者只测试一些简单的情况。后者测试复杂的情况。提示:初始化变量。@fdan对不起,我刚刚注意到这个问题只对高级用户开放,我只是得到了它的快照。希望有帮助。请在问题中插入所有必要的信息作为文本。不要使用链接或图片
Input: "eceba"
Output: 3
Explanation: t is "ece" which its length is 3.
Input: "ccaabbb"
Output: 5
Explanation: t is "aabbb" which its length is 5.
class Solution {
public:
    int lengthOfLongestSubstringTwoDistinct(string s)
    {
        if (!s.length() || s.length() == 1 || s.length() == 2)
            return s.length();

        unsigned int left = 0, right = 0; // Use sliding window

        map<char, int> mp;

        int count;

        int len = s.length();

        int res = 1; // default answer

        while (right < len) {
            if (right < len && (mp.find(s.at(right)) == mp.end() || mp[s.at(right)] == 0)) {
                count++;
            }
            mp[s.at(right)]++;
            right++;

            if (count > 2) // if count is out of scope, just undo last action
            {
                count--;
                right--;
                if (right < len)
                    mp[s.at(right)]--;

                if (right - left > res) {
                    res = right - left;
                }

                while (count == 2) {
                    mp[s.at(left)]--;
                    if (mp[s.at(left)] == 0)
                        count--;
                    left++;
                }
            }
        }

        return right - left > res ? right - left : res;
    }
};