#advent #solution #line #input #problem #part #command-line

bin+lib advent-of-code

Advent of Code 的解决方案

480 个稳定版本

2022.0.66 2024 年 2 月 25 日
2022.0.63 2023 年 12 月 9 日
2022.0.59 2023 年 11 月 21 日
2022.0.57 2023 年 5 月 28 日
2019.12.168 2020 年 11 月 30 日

#154算法

Download history 14/week @ 2024-04-02 1/week @ 2024-05-28 3/week @ 2024-06-04 3/week @ 2024-06-11 139/week @ 2024-07-02

139 每月下载次数

MIT 许可证

1MB
28K SLoC

Crates.io Docker Hub codecov

Advent of Code 解决方案

Rust 语言实现的 Advent of Code 问题解决方案。

本地运行

命令行工具接受 <year> <day> <part> 作为参数,并从 stdin 读取问题输入

$ echo 14 | cargo run -q 2019 1 1
2

使用 Homebrew 安装

命令行工具可以作为 brew tap 安装

$ brew install fornwall/tap/advent-of-code
$ echo 14 | advent-of-code 2019 1 1

已发布 crate

此 crate 已发布到 crates.io/crates/advent-of-code

作为一个库,它提供了一个 solve(year, day, part, input) 函数,如 docs.rs/advent-of-code 上所述

// Using the dependency added: advent-of-code = "*":
use advent_of_code::solve;

fn main() {
    assert_eq!(solve(2019, 1, 1, "14"), Ok("2".to_string()));
}

它还包含运行解决方案的命令行程序

$ cargo install advent-of-code
$ echo 14 | advent-of-code 2019 1 1
2

Docker Hub 上的 Docker 镜像

命令行界面已发布到 fredrikfornwall/advent-of-code Docker 镜像

$ docker pull fredrikfornwall/advent-of-code:latest
$ echo 14 | docker run -i fredrikfornwall/advent-of-code:latest 2019 1 1
2

在 macOS 上生成 flamegraphs

使用 cargo install flamegraph 安装 flamegraph 并使用以下命令构建基准二进制文件

RUSTFLAGS='-g' cargo build --release --bench benchmark

这将创建一个基准二进制文件,例如在 ls ../../target/release/deps/benchmark-31ba773f80f7f5d8 下。然后运行以生成 flamegraph.svg

sudo flamegraph ../../target/release/deps/benchmark-31ba773f80f7f5d8  --bench 2020_07_1

依赖

~0–31MB
~462K SLoC