题目

 
 
 

分析

 

  • 首先,显然算一个前面*后面
  • 但是我们需要去重
  • 直接记录上一个的位置
  • 少算就OK

代码

 1 #include <cmath>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <iostream>
 5 #include <algorithm>
 6 #define ll long long
 7 using namespace std;
 8 int main()
 9 {
10     int ans=0,last=-1;
11     string s;
12     cin>>s;
13     for (int i=0;i<=s.size()-4;i++)
14     {
15         if(s[i]=='a'&&s[i+1]=='g'&&s[i+2]=='n'&&s[i+3]=='u'&&s[i+4]=='s')
16         {
17             if (last!=-1) ans+=(i-last)*(s.size()-i-4);
18             else ans+=(i+1)*(s.size()-i-4);
19             last=i;
20         }
21     }
22     cout<<ans;
23     return 0;
24 }
01-04 23:27
查看更多