Code:
#include<bits/stdc++.h> #define maxn 1000000 #define setIO(s) freopen(s".in","r",stdin) using namespace std; int n; char str[maxn]; int main(){ // setIO("input"); int r; scanf("%s",str+1),n=strlen(str+1),r=n+2; long long ans=0; for(int i=n-1;i>=1;--i){ for(int j=1;i+2*j<=n;++j) { if(str[i]==str[i+j]&&str[i+j]==str[i+2*j]) { r=min(r,i+2*j); break; } } ans += (long long)max(n-r+1,0); } cout<<ans<<endl; return 0; }
原文:https://www.cnblogs.com/guangheli/p/10953361.html