其实逻辑挺简单的,就是针对每次翻转做一次面与值的匹配就行了,直到所有翻转操作完成即可按顺序输出每个面的值。。
下面伪代码
#include<map>
...
void get_status()
{
string str;/*str为翻转操作指令集合,我当字符串算了*/
cin >> str;
/*创建map,key为方向:左右前后上下,value为对应的值状态*/
std::map<xxx,xxx> sai; /*创建map容器:方向,值 <string,int>*/
sai.insert(.......);/*初始化*/
for (.....)/*遍历str指令,怎么翻转*/
{
tmp = str[i];/*当前操作字符*/
if(tmp == 'L')/*左转,上下面不变,其他面移位*/
{
/*下面的赋值都是翻转后面和面的值的替换*/
}
else if....
else ..
}
/*打印*/
cout<< sai["L"] << ..... << endl;
}
/*测试调用*/
int main()
{
get_status();
return 0;
}
C-FREE 自测结果符合。。如果转发要写上源链接。。
https://blog.youkuaiyun.com/m1009741503/article/details/105942647