LeetCode1358.NumberofSubstringsContainingAllThreeCharacters包含所有三个字符的子串个数【中】【Python】【双指针】【滑动窗口】ProblemLeetCodeGivena仅由字符a、b和c组成的字符串s。返回包含所有这些字符a、b和c至少出现一次的子字符串的数量。示例1:输入:s="abcabc"输出:10解释:包含at的子字符串字符a、b和c至少出现一次是“abc”、“abca”、“abcab”、“abcabc”、“bca”、“bcab”、“bcabc”、“cab”、“cabc”和“abc”“(再次)。示例2:输入:s="aaacb"输出:3解释:包含字符a、b和c至少出现一次的子字符串是“aaacb”、“aacb”和“acb”。示例3:输入:s="abc"输出:1Constraints:3<=s.length<=5x10^4s仅由a、b或c字符组成。它只包含三个字符a、b和c。请返回a、b、c都至少出现一次的子串的个数。示例1:输入:s="abcabc"输出:10解释:包含a、b和c至少一次的子串分别是"abc"、"abca"、"abcab"、"abcabc"、"bca"、"bcab”、“bcabc”、“cab”、“cabc”和“abc”(相同的字符串计算多次)。示例2:输入:s="aaacb"输出:3解释:包含a、b和c的子字符串至少各一次是"aaacb"、"aacb"和"acb"。示例3:输入:s="abc"输出:1提示:3<=s.length<=5x10^4s仅包含字符a、b和c。双指针滑动窗口的思路1.如果窗口中有a,b,c,则继续向右开窗口满足2.如果窗口中没有a,b,c窗口,然后将右指针向右移动,发现窗口中有a,b,c3。然后左指针右移,上面两种情况每次都要判断时间复杂度:O(n)空间复杂度:O(n)Python3代码类解决方法:defnumberOfSubstrings(self,s:str)->int:如果len(s)<=2:返回0length=len(s)left,right=0,2ans=0whileleft
