rustgym 0.2.0

rustgym solutions
Documentation
struct Solution;

impl Solution {
    fn valid_word_square(words: Vec<String>) -> bool {
        let n = words.len();
        for i in 0..n {
            let m = words[i].len();
            if m > n {
                return false;
            }
        }
        let mut a: Vec<Vec<u8>> = vec![vec![0; n]; n];
        for i in 0..n {
            for (j, b) in words[i].bytes().enumerate() {
                a[i][j] = b;
            }
        }
        for i in 0..n {
            for j in 0..n {
                if a[i][j] != a[j][i] {
                    return false;
                }
            }
        }
        true
    }
}

#[test]
fn test() {
    let words: Vec<String> = vec_string!["abcd", "bnrt", "crmy", "dtye"];
    assert_eq!(Solution::valid_word_square(words), true);
    let words: Vec<String> = vec_string!["abcd", "bnrt", "crm", "dt"];
    assert_eq!(Solution::valid_word_square(words), true);
    let words: Vec<String> = vec_string!["ball", "area", "read", "lady"];
    assert_eq!(Solution::valid_word_square(words), false);
    let words: Vec<String> = vec_string!["ball", "asee", "let", "lep"];
    assert_eq!(Solution::valid_word_square(words), false);
}