How to check if a matrix is Toeplitz or not in Rust

1 Answer

0 votes
// A matrix is Toeplitz if every diagonal from top-left to bottom-right has the same elements

fn is_toeplitz(matrix: &[Vec<i32>]) -> bool {
    let rows = matrix.len();
    let cols = matrix[0].len();

    for i in 1..rows {
        for j in 1..cols {
            println!("{} {} - {} : {}", i, j, matrix[i][j], matrix[i - 1][j - 1]);
            if matrix[i][j] != matrix[i - 1][j - 1] {
                return false;
            }
        }
        println!("-----------");
    }

    true
}

fn main() {
    let matrix = vec![
        vec![2, 7, 9, 8],
        vec![4, 2, 7, 9],
        vec![3, 4, 2, 7],
        vec![0, 3, 4, 2],
        vec![6, 0, 3, 4],
    ];

    if is_toeplitz(&matrix) {
        println!("Matrix is a Toeplitz");
    } else {
        println!("Matrix is not a Toeplitz");
    }
}


 
   
/*
run:

1 1 - 2 : 2
1 2 - 7 : 7
1 3 - 9 : 9
-----------
2 1 - 4 : 4
2 2 - 2 : 2
2 3 - 7 : 7
-----------
3 1 - 3 : 3
3 2 - 4 : 4
3 3 - 2 : 2
-----------
4 1 - 0 : 0
4 2 - 3 : 3
4 3 - 4 : 4
-----------
Matrix is a Toeplitz
  
*/

 



answered Jan 31, 2025 by avibootz
edited Jan 31, 2025 by avibootz

Related questions

1 answer 98 views
1 answer 110 views
1 answer 123 views
1 answer 99 views
1 answer 98 views
1 answer 131 views
1 answer 116 views
...