其实只要能想到三对相同就好了
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
using namespace std;
char s[20];
struct node
{
char q,p;
};
node s1[5],s2[5];
int vis[5];
int main()
{
while(scanf("%s",s)!=EOF)
{
memset(vis,0,sizeof(vis));
memset(s1,0,sizeof(s1));
memset(s2,0,sizeof(s2));
for(int i=0;i<3;i++)
{
if(s[i]>s[5-i])
swap(s[i],s[5-i]);
s1[i].p=s[i],s1[i].q=s[5-i];
}
for(int i=0;i<3;i++)
{
if(s[i+6]>s[11-i])
swap(s[i+6],s[11-i]);
s2[i].p=s[i+6],s2[i].q=s[11-i];
}
for(int i=0;i<3;i++)
{
char a=s2[i].p,b=s2[i].q;
for(int j=0;j<3;j++)
{
if(vis[j]==0&&a==s1[j].p&&b==s1[j].q){
vis[j]=1;
break;
}
}
}
int flag=0;
for(int i=0;i<3;i++)
{
if(vis[i]==0) {printf("FALSE\n");flag=1;break;}
}
if(!flag) printf("TRUE\n");
}
return 0;
}