当前位置: 首页 > news >正文

UVA253 骰子涂色 Cube painting

UVA253 骰子涂色 Cube painting

题目描述

PDF

输入格式

输出格式

输入输出样例 #1

输入 #1

rbgggrrggbgr rrrbbbrrbbbr rbgrbgrrrrrg

输出 #1

TRUE FALSE FALSE

题目大意

输入两个骰子,判断二者是否等价。每个骰子用6个字母表示。如第一幅图所示。

例如rbgggr和rggbgr分别表示下面两幅图的两个骰子。两者是等价的,因为图1中所示的骰子沿着竖直轴旋转90°之后就可以得到图2所示的骰子。

输入格式

程序的输入是一个文本文件,文件以标准文件结束符收尾,文件中每一行都是 12 个字符组成的字符串:前 6 个字符代表第一个涂色立方体,后 6 个字符代表第二个涂色立方体,程序需要判断两个立方体是否属于同一种涂色方案,也就是能否通过若干次旋转操作,将其中一个立方体变成另一个,不允许使用镜像翻转操作。

输出格式

程序输出由布尔结果组成的文本,每一行输入对应一行输出:如果第二个立方体字符串能通过旋转第一个立方体得到则输出 TRUE,否则输出 FALSE。

解题思路

立方体六个面固定分为三组对立面,分别是 1 对 6、2 对 5、3 对 4,输入的六位字符串下标 0 至 5 刚好一一对应这六个面。读取两个立方体对应的字符串后,分别提取各自三组对立面的颜色配对,每组内两种颜色不分先后,统一将 ASCII 码更小的字符放在前面拼接成字符串存入集合,以此消除颜色顺序带来的差异。之后对比两个立方体生成的集合,若两组集合内的三组配对完全一致,则代表两个立方体能够通过旋转互相转换,输出 TRUE;若集合内容存在差异,无论如何旋转都无法让两个立方体外观一致,直接输出 FALSE。

完整代码

importjava.util.HashSet;importjava.util.Scanner;importjava.util.Set;classCube{privateStringcolorStr;publicCube(Strings){this.colorStr=s;}publicSet<String>oppositePlane(){Set<String>planeSet=newHashSet<>();charc1=colorStr.charAt(0);charc6=colorStr.charAt(5);Strings1=(c1<c6)?c1+""+c6:c6+""+c1;planeSet.add(s1);charc2=colorStr.charAt(1);charc5=colorStr.charAt(4);Strings2=(c2<c5)?c2+""+c5:c5+""+c2;planeSet.add(s2);charc3=colorStr.charAt(2);charc4=colorStr.charAt(3);Strings3=(c3<c4)?c3+""+c4:c4+""+c3;planeSet.add(s3);returnplaneSet;}publicbooleanisSame(Cubecube2){returnthis.oppositePlane().equals(cube2.oppositePlane());}}publicclassCubePainting{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);while(sc.hasNext()){Stringline=sc.next();Stringcube1=line.substring(0,6);Stringcube2=line.substring(6,12);CubecubeA=newCube(cube1);CubecubeB=newCube(cube2);booleanresult=cubeA.isSame(cubeB);if(result){System.out.println("true");}else{System.out.println("false");}}sc.close();}}
http://www.jsqmd.com/news/1196186/

相关文章:

  • 万字详解Java枚举:从基础语法到底层原理,吃透实战用法
  • C语言轻量级RSA库集成指南:三步实现嵌入式数据加密
  • 示波器高级显示模式:从余晖到冻结的实战解析
  • Istio 到 Cilium Service Mesh 的迁移评估:eBPF 能否替代 Sidecar
  • 万物的骨架:深入理解 Mesh(网格)
  • 苏州家里房子漏水找谁修更合适?不同漏水场景的选型建议盘点 - 徽顺虹
  • 北京急出邮票纪念币不用等!全域快速上门回收,当场结清全款 - 深鉴新闻
  • 【VMware教程】RHEL 9虚拟机搭建网盘
  • TDA2E-17时钟系统设计:从DPLL配置到VIP时序的嵌入式实战指南
  • 在断网的银河麒麟系统上装个软件,比找对象还难?用这个方法像点外卖一样简单!
  • 在深圳遇到这8种情况,不用犹豫,直接找无忧白蚁 - GrowthUME
  • 深入解析TMS320C6654:TeraNet互连与CorePac内存管理实战指南
  • 银河麒麟高级服务器操作系统V10SP2(ARM)下Mellanox网卡驱动编译与内核适配实战
  • 2026GEO优化公司有哪些,看懂GEO服务的价格和效果再选
  • ARM ETM 指令追踪实战:利用 perf + OpenCSD 解码控制流做嵌入式代码覆盖率分析
  • 机器学习特征预处理之分类缺失填充
  • 7.15 答辩稿
  • 新手做抖音小店无货源,商品卡自然流怎么选品?工具直接套用 - 电商分享
  • 如何用 5 种终极方法将 Redmi 手机恢复出厂设置
  • 2026福州外墙渗漏、卫生间漏水、楼顶、地下室、阳台+阳光房渗漏别踩坑!3家正规服务商(7月) - 防水企业百科
  • 编程启蒙|Scratch 转 Python 系列第8天:节奏敲击机游戏实战(AI节奏谱生成实战)
  • 边缘推理多实例并发服务架构设计:模型共享内存池与请求级 Arena 隔离方案的工程实现
  • CSS弹性盒子布局(Flexbox)详解
  • 双二阶IIR滤波器——定点数实现与结构选择考量
  • arm smmu学习备忘
  • 【网络协议实战】——双协议栈(Dual Stack)部署与配置指南
  • Android随笔-Context
  • 独立站没询盘、谷歌SEO难做?2026外贸真正的免费出海流量在AI - GrowthUME
  • 多模态模型推理的算子调度优化:视觉 Encoder 与语言 Decoder 的流水线并行策略
  • 从数据库到 Fiori 页面,Field Extensibility 如何让自定义字段贯穿整条应用链路