给定一个01串,判断这个串中有几个区间能够知足 s[i]=s[i+k]=s[i+2k]c++
#include <bits/stdc++.h> using namespace std; int main() { string str; cin>>str; long long int pairs = 0; if(str.length()<2) { cout<<"0"<<endl; return 0; } for(int i=0; i<str.length()-2; i++) { int flag=0; for(int j=i+2; j<str.length(); j++) { for(int x=i; x<j-1; x++) { for(int k=1; (x+2*k)<=j; k++) { if(str[x]==str[x+k]&&str[x]==str[x+2*k]) { pairs = pairs+str.length()-j; flag = 1; break; } } if(flag==1) { break; } } if(flag==1) { break; } } } cout<<pairs<<endl; }