做题
在 src/ 目录下创建新的题目文件,并在 src/main.rs 中添加 mod 声明。
参数
- •文件名:不含
.rs后缀,如lc42、cf1900a - •代码风格:
lc(LeetCode)或acm(Codeforces / 洛谷等需要自己处理输入输出的题目)
操作步骤
- •在
src/下创建{文件名}.rs - •根据代码风格填入对应模板
- •在
src/main.rs的 mod 声明区域添加mod {文件名};(按已有 mod 的位置追加即可)
LeetCode 模板(lc)
rust
struct Solution;
impl Solution {
// TODO: 实现题目要求的方法
}
#[cfg(test)]
mod test_{文件名} {
use super::*;
#[test]
fn test() {
// TODO: 添加测试用例
}
}
特点:
- •不需要
main函数,通过#[cfg(test)]测试模块验证 - •运行方式:
cargo test {文件名}
ACM 模板(acm)
rust
use std::io::{self, BufRead, BufReader, BufWriter, Write};
#[allow(dead_code)]
fn main() {
let mut br = BufReader::new(io::stdin().lock());
let mut bw = BufWriter::new(io::stdout().lock());
let mut buf = String::new();
br.read_line(&mut buf).unwrap();
// TODO: 解析输入并实现算法
bw.flush().unwrap();
}
特点:
- •使用
BufReader/BufWriter高效处理 IO - •
main函数加#[allow(dead_code)]避免警告(因为src/main.rs中已有 main) - •提交到 OJ 时直接拷贝整个文件内容