水题 。
#include<bits/stdc++.h>
using namespace std;
int T,n;
char buf[55];
string s;
bool ok = false;
bool ok1(int a,int b) {
string s1,s2;
s1 = s.substr(0,a);
s2 = s.substr(a,b);
string buf;
if(s1 == s2) return false;
buf = s.substr(a+b,a);
if(buf != s1) return false;
buf = s.substr(a+b+a,b);
if(buf != s2) return false;
buf = s.substr(a+b+a+b,a);
if(buf != s1) return false;
return true;
}
bool ok2(int a,int b,int c) {
string s1,s2,s3;
s1 = s.substr(0,a);
s2 = s.substr(a,b);
s3 = s.substr(a+b+a+b,c);
string buf;
if(s1 == s2 || s1 == s3 || s2 == s3) return false;
if(s1 == s2) return false;
buf = s.substr(a+b,a);
if(buf != s1) return false;
buf = s.substr(a+b+a,b);
if(buf != s2) return false;
buf = s.substr(a+b+a+b,c);
if(buf != s3) return false;
buf = s.substr(a+b+a+b+c,a) ;
if(buf != s1) return false;
buf = s.substr(a+b+a+b+c+a,b);
if(buf != s2) return false;
return true;
}
int main() {
scanf("%d",&T);
while(T--) {
scanf("%s",buf);
n = strlen(buf);
s.clear();
for(int i=0;i<n;i++) if(isalpha(buf[i])) s += buf[i];
n = s.size();
ok = false;
if(n < 5) ;
else {
for(int i=1;i<n/2;i++) {
for(int j=1;j<n/2;j++) {
if(i+j+i+j+i == n && ok1(i,j)) { ok = true; break; }
int c = n - 3*(i+j);
if(c > 0 && 3*(i+j) + c == n && ok2(i,j,c)) { ok = true; break; }
}
if(ok) break;
}
}
if(ok) printf("Yes\n");
else printf("No\n");
}
return 0;
}