用双指针l和r,l为左边界,右边界为r,计算从l到r满足a b c出现次数都大于等于1,r为其中的最小坐标,当然后l——r+1,l——r+2……l——s.size()-1都必然满足a b c出现次数都大于等于1,所以可以直接计算从l开头的子串满足要求的有s.size()-r个,然后再把l++,把s[l]对应的a或者b或者c的个数–,然后在计算该情况下a b c是否都大于0,如果有字母不大于0则r++,同时s[r]对应点字母++,直到a b c都大于0,然后res累加s.size()-r即可
class Solution {
public:
int numberOfSubstrings(string s) {
map<char,int>m;
int n=s.size();
int a=