做网站首页cdr,571免费建网站,品牌网站建设专家,提交网站输入两个骰子#xff0c;判断二者是否等价。每个骰子用6个字母表示#xff0c;如图4-7所示。 例如rbgggr和rggbgr分别表示如图4-8所示的两个骰子。二者是等价的#xff0c;因为图4-8#xff08;a#xff09;所示的骰子沿着竖直轴旋转90之后就可以得到图4-8#xff08;b判断二者是否等价。每个骰子用6个字母表示如图4-7所示。 例如rbgggr和rggbgr分别表示如图4-8所示的两个骰子。二者是等价的因为图4-8a所示的骰子沿着竖直轴旋转90°之后就可以得到图4-8b所示的骰子。 样例
rggbgr
rbgggr
same解法
use std::io;/*1
3 2 4 5 1在顶上62
3 6 4 1 2在顶上53
5 6 2 1 3在顶上44
2 6 5 1 4在顶上35
4 6 3 1 5在顶上26
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;
}