简单模拟,判断某一列是不是全由‘X’构成
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
int ans1[100],ans;
char ch[20];
int main(){
int t;
scanf("%d",&t);
while(t--){
scanf("%s",ch);
int len=strlen(ch);
int a=1,b=len;
ans=0;
while(a<=len){
if(len%a==0){
b=len/a;
for(int i=0;i<b;i++){
if(ch[i]=='X'){
int flag=1;
for(int j=2;j<=a;j++){
if(ch[i]!=ch[i+(j-1)*b]){
flag=0;
break;
}
}
if(flag){
ans++;
ans1[ans]=a;
break;
}
}
else{
continue;
}
}
}
a++;
}
printf("%d",ans);
for(int i=1;i<=ans;i++){
printf(" %dx%d",ans1[i],len/ans1[i]);
}
printf("\n");
}
return 0;
}