题目
分析
- 首先,显然算一个前面*后面
- 但是我们需要去重
- 直接记录上一个的位置
- 少算就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 }