SP10422 IOPC1201 - Rubiks cube

题目描述

一个魔方,六个面分别命名为前、后、上(顶)、下(底)、左和右。魔方的一个基本动作是将一个面顺时针旋转90度,逆时针旋转90度(表示时在字母后加上'号),或绕一个轴从面中心到魔方中心旋转180度(表示时在字母后添加"2")。它还可以组合成复合操作,复合操作中指令按顺序执行。 六个面的旋转对应字母分别为:$F,B,U,D,L,R$。 举个例子,右面顺时针旋转90度用R表示,背面逆时针旋转90度用B'表示,顶面旋转180度用U2表示。基本的移动可以结合起来。例如,URF2表示先将顶面顺时针旋转90度,然后将右面顺时针旋转90度,最后将前面旋转180度。 给出操作序列,求将它做一次后得到的魔方状态至少再做几次这样的操作序列才能再次得到。

输入格式

一个整数$T$,表示数据组数。 每一组数据给一个字符串,表示操作序列。

输出格式

输出能再次得到这个状态的魔方的执行操作序列的最少次数