首页 > 其他 > 详细

【字符串】1358. 包含所有三种字符的子字符串数目

时间:2020-05-04 14:57:30      阅读:51      评论:0      收藏:0      [点我收藏+]

题目:

技术分享图片

 

 

 

解答:

思路:双指针。

技术分享图片

 

 

 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 };

 

【字符串】1358. 包含所有三种字符的子字符串数目

原文:https://www.cnblogs.com/ocpc/p/12826256.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!