AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P2543. 转骰子

中等通过率 67% · 提交 263 · 通过 175
模拟字符串

小慕有一个标准的骰子,它是一个立方体,每个面上标有一个数字。初始时,骰子的状态为:左面是1,右面是2,前面(朝向小慕的方向)是3,后面是4,上面是5,下面是6,用数字序列表示这个初始状态。小慕将骰子放在桌面上,可以进行以下操作:一次(用L表示)、向右翻转一次(用R表示)、向前翻转一次(用F表示)、向后翻转一次(用B表示)、90度(用A表示)、顺时针旋转90度(用C表示)。现在,小慕从初始状态123456开始,按照给定的动作序列依次操作骰子,需要计算出经过所有操作后骰子的最终状态。 骰子的初始状态以及经过各种转动后的状态变化如图所示: ![](https://superblog-1257126549.cos.ap-guangzhou.myqcloud.com/202411111809518.png)

提示:带虚线的词点一下有通俗解释。

输入描述

<div data-page-id="Pr3qdvB7eoqySexRkApcA6Ljnoc" data-lark-html-role="root" data-docx-has-block-data="false"> <div class="ace-line ace-line old-record-id-UdysdgTBhotYsLxL3CDcDVw0nAc"> 输入一行,为只包含 <code>LRFBAC</code> 的字母序列,最大长度 50,字母可重复 </div> </div> <span data-lark-record-data="{"rootId":"Pr3qdvB7eoqySexRkApcA6Ljnoc","text":{"initialAttributedTexts":{"text":{"0":"输入一行,为只包含 LRFBAC 的字母序列,最大长度 50,字母可重复"},"attribs":{"0":"*0+a*0*1+6*0+k"}},"apool":{"numToAttrib":{"0":["author","7115054903550050305"],"1":["inlineCode","true"]},"nextNum":2}},"type":"text","referenceRecordMap":{},"extra":{"channel":"saas","pasteRandomId":"30768842-f97c-4833-aff3-507157908ac8","mention_page_title":{},"external_mention_url":{}},"isKeepQuoteContainer":false,"isFromCode":false,"selection":[{"id":53,"type":"text","selection":{"start":0,"end":36},"recordId":"UdysdgTBhotYsLxL3CDcDVw0nAc"}],"payloadMap":{},"isCut":false}" data-lark-record-format="docx/text" class="lark-record-clipboard"></span>

输出描述

<div data-page-id="Pr3qdvB7eoqySexRkApcA6Ljnoc" data-lark-html-role="root" data-docx-has-block-data="false"> <div class="ace-line ace-line old-record-id-MFCfdKmAcoxBlfx2FBaciHsInBg"> 输出最终状态 </div> </div> <span data-lark-record-data="{"rootId":"Pr3qdvB7eoqySexRkApcA6Ljnoc","text":{"initialAttributedTexts":{"text":{"0":"输出最终状态"},"attribs":{"0":"*0+6"}},"apool":{"numToAttrib":{"0":["author","7115054903550050305"]},"nextNum":1}},"type":"text","referenceRecordMap":{},"extra":{"channel":"saas","pasteRandomId":"76eef7c9-0a94-4189-959a-0c6f5bad900d","mention_page_title":{},"external_mention_url":{}},"isKeepQuoteContainer":false,"isFromCode":false,"selection":[{"id":56,"type":"text","selection":{"start":0,"end":6},"recordId":"MFCfdKmAcoxBlfx2FBaciHsInBg"}],"payloadMap":{},"isCut":false}" data-lark-record-format="docx/text" class="lark-record-clipboard"></span>

示例

示例 1

输入

FCR

输出

342156

说明:骰子向前翻转,状态变为 125643,再顺时针旋转,状态变为 652143,最后向右翻转,状态 变为 342156

示例 2

输入

LR

输出

123456

说明:骰子先向左翻转,再向右翻转回来,故还是原来的状态 123456

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
骰子初始状态与翻转示例上5前3右2初始: 123456L上5前3左1向左翻转后F上5下6右2向前翻转后动作序列示例: FCR初始 123456 → F → 125643 → C → 652143 → R → 342156注意:翻转会改变上下左右前后数字旋转(A/C)只改变方向,不改变上下数字最终状态按左、右、前、后、上、下顺序输出
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「转骰子」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。