fn main(){ let text = "Hello!"; let text = text.to_string(); let text = text.chars(); let mut text: Vec<char> = text.collect(); text.push('$'); // 终止符 let n = text.len(); let text = (0..n).map(|i| { let mut rot = String::new(); for j in 0..n { // print!("{} ",(i + j) %n ); print!("{} ",(i + j) %n); rot.push(text[(i + j) % n]); } println!("{}", rot); rot }).collect::<Vec<String>>(); // for c in text { // println!("{}", c); // } // println!("Original: {}", text); }
(i + j) 0 1 2 3 4 5 6 Hello!$ 1 2 3 4 5 6 7 ello!$H 2 3 4 5 6 7 8 llo!$He 3 4 5 6 7 8 9 lo!$Hel 4 5 6 7 8 9 10 o!$Hell 5 6 7 8 9 10 11 !$Hello 6 7 8 9 10 11 12 $Hello!
(i + j) % n 0 1 2 3 4 5 6 Hello!$ 1 2 3 4 5 6 0 ello!$H 2 3 4 5 6 0 1 llo!$He 3 4 5 6 0 1 2 lo!$Hel 4 5 6 0 1 2 3 o!$Hell 5 6 0 1 2 3 4 !$Hello 6 0 1 2 3 4 5 $Hello!
Github开源生信云平台 DEMO