解题思路:滑动窗口
三步走 进窗口 判断 出窗口 然后更新结果
定义两个hash表在第一个表中存 p的有效字符 比如 abc a一个 b一个 c一个 这样就存在三个有效字符 在第二个hash表中进行滑动窗口的运行 定义一个常量count 如果滑动窗口中有效字符存在一个就 +1
第二个hash表中 进窗口时候怎么才能算有效字符呢?
hash2[s[right] -'a'] <=hash1[s[right] -'a'] 这个时候 count++
这个条件就是滑动窗口中比如a 有 1个 或者2个 3个等等 但是它不能大于p中a的个数 一旦大于就非有效
之后判断我们滑动窗口大于p的数组长度时候就需要删减
char out=s[left++];
if(hash2[out-'a']<=hash1[out-'a']) count--; 判断出去的是否为有效字符
hash2[out-'a']--;