骰子涂色(Cube painting, UVa 253)rust解法

输入两个骰子,判断二者是否等价。每个骰子用6个字母表示,如图4-7所示。
例如rbgggr和rggbgr分别表示如图4-8所示的两个骰子。二者是等价的,因为图4-8(a)所示的骰子沿着竖直轴旋转90°之后就可以得到图4-8(b)所示的骰子。

样例:

复制代码
rggbgr
rbgggr
same

解法:

rust 复制代码
use std::io;

/*
  1
3 2 4 5         1在顶上
  6

  2
3 6 4 1         2在顶上
  5

  3
5 6 2 1			3在顶上
  4

  4
2 6 5 1			4在顶上
  3

  5
4 6 3 1			5在顶上
  2

  6
3 5 4 2			6在顶上
  1

上面每种,都要沿竖轴旋转4次,所以一共24种情况
*/
fn main() {
    let mut buf = String::new();
    io::stdin().read_line(&mut buf).unwrap();
    let s = buf.trim().to_string();
    let mut buf = String::new();
    io::stdin().read_line(&mut buf).unwrap();
    let t = buf.trim().to_string();
    let orders = [
        [1, 2, 3, 4, 5, 6],
        [2, 6, 3, 4, 1, 5],
        [3, 6, 5, 2, 1, 4],
        [4, 6, 2, 5, 1, 3],
        [5, 6, 4, 3, 1, 2],
        [6, 5, 3, 4, 2, 1],
    ];
    for i in 0..6 {
        let mut order = orders[i];
        for _ in 0..4 {
            let mut newt = String::new();
            order = rotate(order);
            for j in 0..6 {
                let c = t.chars().nth(order[j] - 1).unwrap();
                newt.push(c);
            }
            if s == newt {
                println!("same");
                return;
            }
        }
    }
    println!("not same");
}
//沿着竖轴旋转
fn rotate(order: [usize; 6]) -> [usize; 6] {
    let mut neworder = order;
    neworder[2 - 1] = order[3 - 1];
    neworder[3 - 1] = order[5 - 1];
    neworder[4 - 1] = order[2 - 1];
    neworder[5 - 1] = order[4 - 1];
    return neworder;
}
相关推荐
程序猿阿越37 分钟前
Kafka源码(一)Controller选举与创建Topic
java·后端·源码
-凌凌漆-37 分钟前
【Qt】QStringLiteral 介绍
开发语言·qt
程序员爱钓鱼37 分钟前
Go语言项目工程化 — 常见开发工具与 CI/CD 支持
开发语言·后端·golang·gin
Jiude1 小时前
MinIO 社区版被故意阉割,Web管理功能全面移除。我来试试国产RustFS
后端·docker·架构
仰望星空@脚踏实地1 小时前
Spring Boot Web 服务单元测试设计指南
spring boot·后端·单元测试
军训猫猫头1 小时前
1.如何对多个控件进行高效的绑定 C#例子 WPF例子
开发语言·算法·c#·.net
羊小猪~~1 小时前
数据库学习笔记(十七)--触发器的使用
数据库·人工智能·后端·sql·深度学习·mysql·考研
用户8324951417321 小时前
JAVA 版本多版本切换 - 傻瓜式操作工具
后端
真的想上岸啊1 小时前
学习C++、QT---18(C++ 记事本项目的stylesheet)
开发语言·c++·学习
estarlee1 小时前
随机昵称网名API接口教程:轻松获取百万创意昵称库
后端