#leetcode #问题 #算法

bin+lib leetcode-in-rust

Rust 语言编写的 LeetCode 题解

1 个不稳定版本

0.2.10 2023年3月7日

#15#leetcode

Apache-2.0

185KB
3K SLoC

Rust 语言 LeetCode 解法

GitHub Workflow Status GitHub Workflow Status GitHub Workflow Status

阅读中文内容

Rust 文档请参阅 https://leetcode-rust.zhongdongy.comhttps://leetcode-rust.pages.dev/

注意:所有问题描述均收集自 LeetCode 网站力扣,所有相关版权归 LeetCode、力扣及其社区所有。此仓库的作者不能不会保证问题描述和解决方案的正确性。

文档

运行 cargo doc 命令,然后在 target/doc/leetcode_rust/ 目录中查找文档。

构建文档

此命令将清空 docs/ 目录,并将新生成的文档放置其中。由于文档部署在 Cloudflare Pages 服务上,而该服务暂时不支持使用 Cargo 构建,因此必须在将最新更改推送到 GitHub 之前执行本地文档构建。

./docsgen.sh

测试

解决方案测试位于 tests/problems 目录中,并按问题编号分组。每个问题测试组(例如 p000_0xxx.rs)对应一个测试用例模块目录(例如 cases/c000_0xx/)。每个问题测试都有自己的用例定义,要使用测试用例,只需导入并调用 use_case() 函数。

测试所有解决方案

要运行所有解决方案测试,只需运行

cargo test --test solutions # LeetCode problems
cargo test --test solutions_cn # 力扣题库

运行文档测试

cargo test --doc

运行单元测试

cargo test --lib

同时运行单元测试和所有解决方案

cargo test --tests

运行特定问题的测试

假设您想测试问题 #5 的解决方案,运行

cargo test --test solutions p000_005

Rust 语言下的力扣解法(非官方)

GitHub Workflow Status GitHub Workflow Status GitHub Workflow Status

面向英语读者

关于 Crate 提供的各个解法的 Rust 文档,请参阅 https://leetcode-rust.dongs.xyz/

请注意,所有题目来源于 LeetCode 网站力扣。所有题目的著作权属于上述两个平台及相应的社区。作者不能不会保证题目描述、解法的正确性。

文档

在项目根目录执行 cargo doc 命令,然后访问 target/doc/leetcode_rust/ 目录可以 找到生成的最新文档。

构建文档

下述命令将会清空您本地项目目录下的 docs/ 文件夹,然后将新生成的内容放入其中。由于此文档 部署在 Cloudflare Pages 服务上,而该服务暂不支持使用 Cargo 构建,所以必须在每次推送 最新更改到 GitHub 之前执行本地文档构建。

./docsgen.sh

解法验证

所有的解法验证程序都位于 tests/problems_cn 目录下,并按照题目编号进行分组。每个问题组(如 p000_0xx.rs 代表编号 000 到 099 的题目)对应一个单独的测试用例目录(如 cases/c000_0xx/)。每个问题的验证程序都提供了国际版、国内版两组测试用例,但其中的大部分都是相同的。要使用某个问题的测试用例,只需要将其引入,然后调用公有的 use_case() 函数,它的返回值就是测试用例列表。

验证所有的问题的解法

执行以下命令来执行所有问题的解法

cargo test --test solutions # LeetCode 国际版题库
cargo test --test solutions_cn # 力扣题库

执行文档测试

cargo test --doc

执行单元测试

cargo test --lib

同时执行单元测试和验证解法

cargo test --tests

单独验证某个问题的解法

假设您想要验证问题 #5 的解,那么可以执行以下命令

cargo test --test solutions p000_005

依赖项

~0.6–1.4MB
~32K SLoC