给定一个由小写字母组成的字符串,寻找包含“agnus”(羔羊)的子串的个数。注意:当且仅当两个子串的起始位置和终点不同时,这两个子串属于不同的子串。
输入格式:
只有一个字符串,表示题中所述的字符串。
输出格式:
仅一个数字,表示满足题意的子串个数。
样例输入:
agnusbgnus
样例输出:
6
数据范围:
对于 40%的数据,字符串长度<=1000
对于 100%的数据,字符串长度<=30000
差一点就不会做了。。。。数学渣
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<string>
char s[30010];
int i,n,ans,x;
int main()
{
scanf("%s",s);
n=strlen(s);
for (i=0;i+4<n-1;i++)
if (s[i]=='a'&&s[i+1]=='g'&&s[i+2]=='n'&&s[i+3]=='u'&&s[i+4]=='s')
{ans+=(i+1-x)*(n-i-4); x=i+1;}
printf("%d\n",ans);
return 0;
}