尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

UVA253 - 副本

UVA253 - 副本 UVA253 骰子涂色 Cube painting题目描述PDF输入格式输出格式输入输出样例 #1输入 #1rbgggrrggbgr rrrbbbrrbbbr rbgrbgrrrrrg输出 #1TRUE FALSE FALSE题目大意输入两个骰子判断二者是否等价。每个骰子用6个字母表示。如第一幅图所示。例如rbgggr和rggbgr分别表示下面两幅图的两个骰子。两者是等价的因为图1中所示的骰子沿着竖直轴旋转90°之后就可以得到图2所示的骰子。输入格式程序的输入是一个文本文件文件以标准文件结束符收尾文件中每一行都是 12 个字符组成的字符串前 6 个字符代表第一个涂色立方体后 6 个字符代表第二个涂色立方体程序需要判断两个立方体是否属于同一种涂色方案也就是能否通过若干次旋转操作将其中一个立方体变成另一个不允许使用镜像翻转操作。输出格式程序输出由布尔结果组成的文本每一行输入对应一行输出如果第二个立方体字符串能通过旋转第一个立方体得到则输出 TRUE否则输出 FALSE。解题思路读取输入字符串并切分出两段内容对应两个立方体六个面的数据预先存放立方体全部 24 种空间旋转的下标映射规则循环尝试第一种立方体所有旋转方案依据下标规则重组字符得到旋转后的立方体字符串若任意旋转结果与第二个立方体字符串相同代表两个立方体可通过旋转重合依据匹配结果大写输出 TRUE 或者 FALSE。完整代码importjava.util.Scanner;publicclassCubepainting1{staticint[][]rotate{{0,1,2,3,4,5},{0,2,4,1,3,5},{0,3,1,4,2,5},{0,4,3,2,1,5},{1,0,3,2,5,4},{1,2,0,5,3,4},{1,3,5,0,2,4},{1,5,2,3,0,4},{2,0,1,4,5,3},{2,1,5,0,4,3},{2,4,0,5,1,3},{2,5,4,1,0,3},{3,0,4,1,5,2},{3,1,0,5,4,2},{3,4,5,0,1,2},{3,5,1,4,0,2},{4,0,2,3,5,1},{4,2,5,0,3,1},{4,3,0,5,2,1},{4,5,3,2,0,1},{5,1,3,2,4,0},{5,2,1,4,3,0},{5,3,4,1,2,0},{5,4,2,3,1,0},};publicstaticStringrotateCube(Stringstr,int[]map){char[]resnewchar[6];for(inti0;i6;i){res[i]str.charAt(map[i]);}StringrotateCubenewString(res);returnrotateCube;}publicstaticvoidmain(String[]args){ScannerscnewScanner(System.in);while(sc.hasNext()){Stringlinesc.next();StringcubeAline.substring(0,6);StringcubeBline.substring(6,12);booleanflagfalse;for(inti0;i24;i){StringrotatedrotateCube(cubeA,rotate[i]);if(rotated.equals(cubeB)){flagtrue;break;}}System.out.println(flag?TRUE:FALSE);}sc.close();}}测评结果
返回列表