题目:
解答:
思路:双指针。
1 class Solution { 2 public: 3 int cnt[3]; 4 public: 5 int numberOfSubstrings(string s) 6 { 7 int len=(int)s.length(); 8 int ans=0; 9 cnt[0]=cnt[1]=cnt[2]=0; 10 11 for (int l=0,r=-1;l<len;) 12 { 13 while (r<len && !(cnt[0]>=1 && cnt[1]>=1 && cnt[2]>=1)) 14 { 15 if (++r==len) 16 { 17 break; 18 } 19 cnt[s[r]-‘a‘]++; 20 } 21 ans+=len-r; 22 cnt[s[l++]-‘a‘]--; 23 } 24 return ans; 25 } 26 };
原文:https://www.cnblogs.com/ocpc/p/12826256.html