首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 汽车 游戏 社会热点 开源推荐 医疗健康 归档 标签 关于

显示 HN:Openleetcode – 本地 LeetCode 运行器,测试位于存储库中

2026-08-19 1 阅读 约8分钟阅读 therepanic
分享:
字号:
“没有魔法机器,也没有魔法操作者。” - DHH openleetcode 是一个围绕开放测试套件构建的本地 LeetCode 运行器,用 Haskell 制作。它需要一个普通的解决方案文件,找到匹配的问题清单,构建一个小型的特定于语言的工具,将其发送到可插入的执行后端,并在本地判断结果。测试位于存储库中。运行时模板位于存储库中。 CLI 只是粘合剂。 $ openleetcode Submit ./solution.py --id 1 $ openleetcode Submit ./solution.rs --titletwo-sum 您需要 Docker 作为执行后端。在 Linux 和 macOS 上,安装程序将尝试通过 Docker Compose 为您启动默认的 Piston 后端。在 Windows 上,安装程序仅安装 CLI。自己带Docker,手动启动后端。 Linux 和 macOS:curl -fsSL https://raw.githubusercontent.com/therepanic/openleetcode/main/install.sh | sh Windows PowerShell:irm https://raw.githubusercontent.com/repanic/openleetcode/main/install.ps1| iex Docker:curl -fsSL https://raw.githubusercontent.com/therepanic/openleetcode/main/openleetcode.yml -o openleetcode.yml curl -fsSL https://raw.githubusercontent.com/therepanic/openleetcode/main/backends/piston/docker-compose.yml -opiston.yml docker compose -fpiston.yml up -d dockercompose-fopenleetcode.yml -fpiston.yml run --rm openleetcode --version 后端在第一次启动时可能需要一段时间来安装运行时。 openleetcode 目前使用 Piston 作为其执行后端。默认配置指向: 从结帐中,使用以下命令启动捆绑后端: docker compose -f backends/piston/docker-compose.yml up -d 然后检查 CLI 配置: $ openleetcode config list $ openleetcode config set backend.url http://localhost:2000 下载最新的公共数据资产: $ openleetcode download all 按问题 id 运行解决方案: $ openleetcode Submit ./two_sum.py --id 1按标题运行解决方案: $ openleetcode commit ./solution.cpp --title "two-sum " 当文件扩展名不明确时覆盖语言检测: $ openleetcode commit ./main.abc --id 1 --lang python3 更新 openleetcode:运行程序具有以下模板:cpp、rust、python3、python2、ruby、java、csharp、kotlin、go、dart、swift、typescript 每个运行时都提供小的兼容性LeetCode 层问题往往需要:JSON 输出、数组、矩阵、链表、二叉树等。导入和公共库都保持在官方 LeetCode 环境附近,因此解决方案应该看起来像正常的 LeetCode 提交,而不是自定义的 openleetcode 程序。对于代码更改,您需要带有 Cabal 的 Haskell 工具链。构建 CLI: $ cabal build exe:openleetcode 运行测试套件: $ cabal test core-tests $ cabal test cli-tests 直接运行构建的可执行文件: 无代码贡献 从 TEST_FORMAT.md 开始。严重地。它是 YAML、运行时模板和法官之间的契约。每个问题都是一个带有 manifest.yaml 的目录:tests/1-500/1。两和/manifest.yaml 测试/1-500/1。两和/sol.py 测试/1-500/1。 Two-sum/sol.cpp 也有帮助脚本,因为我们都是人类,手工编写第 39 个边缘情况是人们开始与电子表格讨价还价的方式。 $ pythongenerate_prompt.py Two-sum $ python spartan.py --skip 0 --limit 10 --no-generate --concurrency 5 $ python molotov.py --skip 0 --limit 10 --concurrency 5generate_prompt.py 根据其语句、代码片段和参考 Python 解决方案构建一个 LeetCode 问题的提示。 spartan.py 批量执行相同的操作,并且可以在设置 OPENROUTER_API_KEY 时通过 OpenRouter 要求 LLM 将清单起草到 generated_problems/ 中。 molotov.py 从这些生成的文件夹中填充 sol.{lang} 文件,重用 Prompt.txt 和 sol.py 。像初级贡献者一样以无限的耐心对待输出:有用、快速,但仍然非常需要审查。 openleetcode 还很年轻,有些清单会比其他清单更好。那很好。重点在于,判断和测试并没有被密封在某个地方。
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱