給定一個由小寫字母組成的字符串,尋找包含“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;
}