思路:反复只考虑前后两个bear字符串即可,同时每次记住前一个bear的位置,减去当前与前一个重复的地方即可
。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main(){
string ch;
int i,j;
cin>>ch;
int len=ch.size(),ans=0,x=0;
for(i=0;i<len;i++){
if(ch[i]=='b'&&ch[i+1]=='e'&&ch[i+2]=='a'&&ch[i+3]=='r'){
ans+=(i+1)*(len-i-3)-x*(len-i-3);
x=i+1;
}
}
cout<<ans<<endl;
}
。