Skip to content

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

LeetCode Practice Coach

一个通用的 LeetCode 练习与间隔复习 skill,帮助你从 Hot100 开始刷题,并持续记录每道题的掌握度、复习结果和下次复习时间。

它不依赖 Notion,也不要求登录力扣。数据默认保存在本地 CSV 文件中。

提供什么

  • 内置官方 Hot100 题库
  • 根据到期时间、掌握度和历史卡点生成每日计划
  • 苏格拉底式引导:一次只给一个针对性的思考问题
  • 渐进式提示:方向提示 → 结构化思路 → 完整解法
  • 记录回忆、编码、讲解、提示次数、用时和主要卡点
  • 自动计算掌握度和下一次复习日期
  • 支持从力扣 Hot100 页面源代码提取最新题单
  • 支持导入 CSV/JSON 题目目录或其他工具导出的力扣记录

安装

最简单的方式是把下面这段话直接发送给 Codex:

请从 https://github.com/Forever0713/leetcode-practice-coach 安装 leetcode-practice-coach skill。
安装完成后告诉我 skill 的安装位置,并确认它可以用于生成 LeetCode Hot100 复习计划。

如果需要手动安装,将仓库中的 skills/leetcode-practice-coach/ 目录复制到 Codex skills 目录。

开始使用

推荐安装后直接在 Codex 对话中使用。第一次说“生成今天的复习计划”时,如果本地还没有题库,Codex 会先初始化官方 Hot100 题库,再生成计划。

如果希望手动管理初始化和计划,也可以在包含 skills/ 的练习项目根目录中执行:

python skills/leetcode-practice-coach/scripts/init_data.py --preset hot100
python skills/leetcode-practice-coach/scripts/make_plan.py

make_plan.py 默认每天安排 5 道题。也可以指定数量:

python skills/leetcode-practice-coach/scripts/make_plan.py --count 3

同一天已经生成过计划时,脚本会复用原计划,保证计划稳定。只有明确需要重新安排时才使用:

python skills/leetcode-practice-coach/scripts/make_plan.py --count 5 --refresh

初始化命令只适合第一次使用;如果本地已经有 data/questions.csv,不要随意重复使用 --preset hot100,以免覆盖现有题目目录。

初始化后会创建:

data/questions.csv   题目目录
data/reviews.csv     每次复习记录
data/mastery.csv     当前掌握度和下次复习日期
data/plans/          每日计划快照

记录一次复习

python skills/leetcode-practice-coach/scripts/record_review.py `
  --question 1 `
  --recall 2 `
  --coding 2 `
  --explanation 2 `
  --hints 1 `
  --result passed `
  --minutes 25 `
  --blocker none

题目可以使用题号、标题或 titleSlug 查找。评分范围为 0–3:

0 = 完全不会
1 = 需要较多提示
2 = 基本掌握但有小问题
3 = 可以独立完成并解释

结果可以是 passeddebuggedfailed

实际使用流程

这个 skill 的使用流程很简单,主要围绕一轮对话循环。安装后,直接在 Codex 对话中说出你的需求即可,不需要记住脚本命令。

1. 生成今日计划

你可以直接说:

生成今天的复习计划。

skill 会根据本地题库、到期时间、掌握度和历史卡点生成计划。默认安排 5 道题,并展示题目链接。如果当天已经生成过计划,会继续使用原计划;想重新安排时再说“重新生成今天的计划”。

如果当天时间有限,或者希望按照最新的复习状态调整题目,可以说:

重新生成今天的复习计划,安排 3 道题。

重新生成会替换当天的计划;普通的“生成今天的复习计划”则会复用当天已有的计划。

2. 逐题复习

skill 会先展示题目名称、难度、主题和力扣链接,然后只提出一个针对性的思考问题。它不会一开始展示完整解法。你可以先分析思路、写代码,再根据提示逐步修正。

3. 记录并复习下一题

当前题目完成后,你可以说:

记录这道题,复习下一题。

skill 会总结本次表现,记录复习结果、掌握度、用时和下一次复习日期,然后继续当天计划中的下一道题。

因此,一个典型的使用过程就是:

生成今天的复习计划
→ 逐题思考和编码
→ 记录这道题,复习下一题

常用对话

生成今天的复习计划。
重新生成今天的复习计划,安排 3 道题。
记录这道题,复习下一题。

导入外部力扣记录

如果使用其他工具获取力扣提交历史,可以将它生成的 JSON/CSV 文件导入:

python skills/leetcode-practice-coach/scripts/import_leetcode.py .\leetcode-export.json

本项目只负责读取和标准化外部文件,不负责登录力扣,也不会要求或保存 Cookie。平台上的“已通过”记录只作为历史背景,不会直接等价为掌握度。

从官方页面更新 Hot100

在力扣 Hot100 页面查看网页源代码并保存为 HTML:

https://leetcode.cn/studyplan/top-100-liked/

然后执行:

python skills/leetcode-practice-coach/scripts/import_hot100_html.py `
  .\leetcode-hot100.html `
  --output data/questions.csv

脚本读取页面内嵌的 __NEXT_DATA__,使用 titleSlug 作为稳定 ID,不依赖第三方题单或 Cookie。

数据隐私

本项目不会要求或保存力扣 Cookie,也不会自动上传本地复习数据。不要将 .env.localdata/ 或包含个人记录的文件提交到公开仓库。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages