题意翻译
输入两个骰子,判断二者是否等价。每个骰子用6个字母表示。如第一幅图所示。
例如rbgggr和rggbgr分别表示下面两幅图的两个骰子。两者是等价的,因为图1中所示的骰子沿着竖直轴旋转90°之后就可以得到图2所示的骰子。
输入格式:
12个字母,前6个字母是第一个骰子的六个面;后6个字母是第二个骰子的六个面。
输出格式:
一个布尔值。若两个骰子是等价的,则输出TRUE;反之输出FALSE。
输入输出样例
输入 #1
rbgggrrggbgr
rrrbbbrrbbbr
rbgrbgrrrrrg
输出 #1
TRUE
FALSE
FALSE
思路
思路1:判断两个骰子的3组面是否能一一对应.这个思路可以得到AC代码但是不符合题目要求,如rgbgrbgrgrbb.
思路2:暴力模拟一遍骰子所有旋转后的可能.
代码
思路1
#include <stdio.h>
#include <string.h>
#define maxn 15
struct cube {
char A;
char B;
};
cube left[10];
cube right[10];
char str[maxn];
int main() {
#ifdef LOCAL
freopen("253.out", "w+", stdout);
#end