BWT Burrows–Wheeler transform

最后发布时间:2026-02-22 16:09:33 浏览量:
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!
快捷入口
algorithm 思维导图 浏览PDF 下载PDF
分享到:
标签