美文网首页
如何用Rust快乐的刷leetcode

如何用Rust快乐的刷leetcode

作者: Gascognya | 来源:发表于2020-11-11 16:45 被阅读0次

    rust最大的一个好处是,在本地pass几个测试用例,提交基本就是一次过。
    很少被各种各种边界条件绊倒,逻辑上没问题基本就是放心飞。
    (想起之前被python暴打的经历)

    rust的单元测试非常爽,尤其在有RA的情况下。


    cargo开个lib项目

    cargo的项目会自动配置上git,这也将方便我们上传。
    可以再单独立一个文件用来保存特殊的数据结构。

    pub mod datastructure;
    use datastructure::*;
    
    pub struct Solution;
    
    impl Solution {
        pub fn num_identical_pairs(nums: Vec<i32>) -> i32 {
            let mut count = 0;
            let len = nums.len();
            for index in 0..len {
                for i in index + 1..len {
                    if nums[i] == nums[index] {
                        count += 1;
                    }
                }
            }
            count
        }
    }
    
    #[cfg(test)]
    mod tests {
        use super::datastructure;
        use super::Solution;
        #[test]
        fn code1512() {
            // 1512. 好数对的数目
            // 给你一个整数数组 nums 。
            // 如果一组数字 (i,j) 满足 nums[i] == nums[j] 且 i < j ,
            // 就可以认为这是一组 好数对 。
            // 返回好数对的数目。
    
            assert_eq!(Solution::num_identical_pairs(vec![1, 2, 3, 1, 1, 3]), 4);
            assert_eq!(Solution::num_identical_pairs(vec![1, 1, 1, 1]), 6);
            assert_eq!(Solution::num_identical_pairs(vec![1, 2, 3]), 0);
        }
    }
    

    在添加新内容时我们可以按照如下顺序,方便对照操作

    • 函数1
    • 函数2
    • 函数3
    • 测试3
    • 测试2
    • 测试1
    RA的单元测试

    另外我们也可以在vscode中加些snippets


    代码片段

    相关文章

      网友评论

          本文标题:如何用Rust快乐的刷leetcode

          本文链接:https://www.haomeiwen.com/subject/huzebktx.html