这题好烦,看了很久都不明白
后来问了一个小牛才看懂
选取第一个六面体的三个面和第二个六面体的六个面进行依次比较 假如第一个六面体中的三个面和第二个六面体中的面有相同 并且他们的对立面也相同
ok这里就说明两个六面体完全相同
先三个面 再三个面的对立面 就这样
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std;
int main(){
char a[13], c1[6], c2[6];
while (cin >> a){
int i, j = 0;
for (i = 0; i < 6; i++){
c1[i] = a[i];
c2[i] = a[i + 6];
}
int mrk;
for (i = 0; i < 3; i++){
mrk = 0;
for (j = 0; j < 6; j++){ //这里去第一个立方体的三个面和第二个的立方体进行枚举对比 如果有相同 则再比较其对立面 3*2=6!
if (c1[i] == c2[j] && c1[5 - i] == c2[5 - j]){
mrk = 1; c2[j] = '0'; c2[5 - j] = '0'; break;
}
}
if (!mrk) break;
}
if (!mrk) cout << "FALSE" << endl;
else cout << "TRUE" << endl;
}
return 0;
}