class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param s string字符串
     * @return int整型
     */
    int lengthOfLongestContinuousTasks(string s) {
        // write code here
        int n = s.size();
        int ans = 0;
        int l = 0;
        set<char>se;
        char c;
        for (int i = 0; i < n; ++i) {
            c = s[i];
            if (se.find(c) == se.end()) {
                se.insert(c);
                ans = max(ans, i - l + 1);
            } else {
                while (s[l] != c) {
                    se.erase(s[l]);
                    ++l;
                }
                ++l;
            }
        }
        return ans;
    }
};

一、题目考察的知识点

哈希+滑动窗口

二、题目解答方法的文字分析

遍历字符串,判断每个字符是否存在滑动窗口中,不存在就加入,存在就移动滑动窗口到上一个相同字符串的最后位置。用滑动窗口记录当前已经连续完成的编号。

遍历完成之后就得到了结果

三、本题解析所用的编程语言

c++