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
另外我们也可以在vscode中加些snippets
代码片段
网友评论