{"id":28403892,"url":"https://github.com/506-fetl/one-question-per-day","last_synced_at":"2026-03-05T09:01:51.625Z","repository":{"id":288221373,"uuid":"967214786","full_name":"506-FETL/one-question-per-day","owner":"506-FETL","description":"本仓库是每日一题的代码仓库，旨在通过每日编程题目提升实验室成员的编程能力和解决问题的能力。每位成员需要根据每日更新的题目完成自己的解法，并通过对应的单元测试后提交代码。","archived":false,"fork":false,"pushed_at":"2025-11-29T13:39:14.000Z","size":26087,"stargazers_count":9,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-01T09:44:39.054Z","etag":null,"topics":["algorithm","frontend","javascript","typescript","unit-testing","vitepress"],"latest_commit_sha":null,"homepage":"https://506-fetl.github.io/one-question-per-day/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/506-FETL.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-16T05:36:14.000Z","updated_at":"2025-11-29T13:39:17.000Z","dependencies_parsed_at":"2025-05-12T06:25:59.800Z","dependency_job_id":"8735d64a-23fd-4847-860c-dece37cc533f","html_url":"https://github.com/506-FETL/one-question-per-day","commit_stats":null,"previous_names":["506-fetl/one-question-per-day"],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/506-FETL/one-question-per-day","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/506-FETL%2Fone-question-per-day","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/506-FETL%2Fone-question-per-day/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/506-FETL%2Fone-question-per-day/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/506-FETL%2Fone-question-per-day/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/506-FETL","download_url":"https://codeload.github.com/506-FETL/one-question-per-day/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/506-FETL%2Fone-question-per-day/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30117479,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T08:19:04.902Z","status":"ssl_error","status_checked_at":"2026-03-05T08:17:37.148Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithm","frontend","javascript","typescript","unit-testing","vitepress"],"created_at":"2025-06-01T19:11:08.585Z","updated_at":"2026-03-05T09:01:51.618Z","avatar_url":"https://github.com/506-FETL.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 每日一题🚀\n\n\u003cbr /\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cdiv style=\"display: flex; justify-content: center; gap: 16px; margin-bottom: 20px;\"\u003e\n    \u003ca href=\"https://one-question-per-day-react-problem.vercel.app/\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/React-每日一题-61DAFB?logo=react\u0026logoColor=white\u0026labelColor=61DAFB\" alt=\"React 每日一题\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://one-question-per-day-vue-problem.vercel.app/\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/Vue-每日一题-42b883?logo=vue.js\u0026logoColor=white\u0026labelColor=42b883\" alt=\"Vue 每日一题\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://506-fetl.github.io/one-question-per-day/\"\u003e\n      \u003cimg src=\"https://img.shields.io/badge/文档中心-5C73E7?logo=vitepress\u0026labelColor=5C73E7\u0026logoColor=white\" alt=\"VitePress 文档\" /\u003e\n    \u003c/a\u003e\n  \u003c/div\u003e\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\n\u003e 算法 / JS 原理实现 / 工程实践 的练习与复盘仓库。\n\n## 🏗️ 概览\n\n```\none-question-per-day/\n├── packages/\n│   ├── problems/                # 题库（官方题目源）\n│   │   ├── base/                # JS \u0026 TS 基础实现题\n│   │   ├── vue/                 # Vue 版本题目（含演练页面）\n│   │   └── react/               # React 版本题目（含演练页面）\n│   ├── core/                    # 成员/路线解答与实验空间\n│   │   ├── base/                # JS/TS 题目实现\n│   │   ├── react/               # React 个人路线实现\n│   │   │   └── solutions/       # 解答界面：\u003csolver\u003e/\u003cday\u003e/ 结构（例如 seam/01、gcy/01）\n│   │   └── vue/                 # Vue 个人或路线实现（结构与 react 类似）\n│   ├── docs/                    # 文档站（VitePress）\n│   └── utils/                   # 构建/发布等脚本\n├── CHANGELOG.md                 # 版本日志\n└── README.md\n```\n\n## 🥅 目标\n\n- 稳定的编程练习节奏\n- 测试驱动、快速反馈与安全重构\n- 多解策略对比（暴力 → 优化 / 空间换时间 / 结构变换）\n- 渐进式引入 TypeScript，沉淀抽象边界\n- 复盘体系化：错因 / 边界 / 优化思路可追溯\n\n## 🚀 快速开始\n\n```bash\npnpm install\n\npnpm test             # 跑所有成员测试（packages/core/**）\npnpm dev              # 格式化 -\u003e 代码检查 -\u003e 测试\npnpm docs:dev         # 启用文档\n```\n\n## 🧪 测试 \u0026 质量\n\n| 维度     | 工具                                                           | 说明                    |\n| -------- | -------------------------------------------------------------- | ----------------------- |\n| 单元测试 | Vitest                                                         | 快速反馈 / 快速定位回归 |\n| 代码质量 | [@antfu/eslint-config](https://github.com/antfu/eslint-config) | 统一风格与潜在错误检测  |\n\n## 📘 使用手册\n\n### 1. 环境准备\n\n\u003e [!IMPORTANT]\n\u003e **请确保你的环境中已安装以下版本：**\n\u003e\n\u003e [![Node.js](https://img.shields.io/badge/Node.js-%3E%3D22.19-339933?logo=node.js\u0026logoColor=white)](https://nodejs.org/)\n\u003e [![pnpm](https://img.shields.io/badge/pnpm-%3E%3D10.15-F69220?logo=pnpm\u0026logoColor=white)](https://pnpm.io/)\n\n验证：\n\n```bash\nnode -v\npnpm -v\n```\n\n### 2. 安装依赖\n\n```bash\npnpm install\n```\n\n### 3. 初次使用\n\n\u003e [!WARNING]\n\u003e **初次使用请务必阅读此部分内容**\n\u003e\n\u003e 1. 将项目拉取到本地后，直接在 `packages/core/react/solutions` 下按你的身份或路线新增一个 solver 文件夹（例如 `my`），然后复制官方题库（`packages/problems/react/problems/`）对应 Day 的题目，放到 `solutions/my/` 下进行实现与测试。\n\u003e 2. React 端题库演练入口：`packages/problems/react`；个人/路线解法集中在：`packages/core/react/solutions/\u003csolver\u003e/\u003cday\u003e`。\n\u003e 3. 如果需要 Vue 版本，结构与 React 类似，参考 `packages/problems/vue` 与 `packages/core/vue`。\n\n### 4. 脚本\n\n| 命令                  | 作用                                               | 备注                              |\n| --------------------- | -------------------------------------------------- | --------------------------------- |\n| `pnpm dev`            | 运行统一开发例程（修复 Lint -\u003e Lint -\u003e 单测）      | 主要面向 core 下的解答与题目验证  |\n| `pnpm test:run`       | 跑所有单元测试                                     | 侧重 `packages/core/**`           |\n| `pnpm build:problems` | 打包题库（可能用于分发或归档）                     | 产物：`dist/problems.zip`         |\n| `pnpm docs:dev`       | 启动文档站（VitePress）                            | 实时预览                          |\n| `pnpm docs:build`     | 构建静态文档                                       | -                                 |\n| `pnpm release`        | 发布版本（自动生成 CHANGELOG / tag / npm publish） | 受 `.release-it.json` 驱动        |\n| `pnpm problem:react`  | 启动 React 题库演练站                              | 题目源：`packages/problems/react` |\n| `pnpm problem:vue`    | 启动 Vue 题库演练站                                | 题目源：`packages/problems/vue`   |\n\n## 🤝 贡献者\n\n\u003c!-- readme: contributors -start --\u003e\n\u003ctable\u003e\n\t\u003ctbody\u003e\n\t\t\u003ctr\u003e\n            \u003ctd align=\"center\"\u003e\n                \u003ca href=\"https://github.com/seaeam\"\u003e\n                    \u003cimg src=\"https://avatars.githubusercontent.com/u/87215099?v=4\" width=\"100;\" alt=\"seaeam\"/\u003e\n                    \u003cbr /\u003e\n                    \u003csub\u003e\u003cb\u003elll\u003c/b\u003e\u003c/sub\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd align=\"center\"\u003e\n                \u003ca href=\"https://github.com/pcppp\"\u003e\n                    \u003cimg src=\"https://avatars.githubusercontent.com/u/104177657?v=4\" width=\"100;\" alt=\"pcppp\"/\u003e\n                    \u003cbr /\u003e\n                    \u003csub\u003e\u003cb\u003epeng chang\u003c/b\u003e\u003c/sub\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd align=\"center\"\u003e\n                \u003ca href=\"https://github.com/xiersiki\"\u003e\n                    \u003cimg src=\"https://avatars.githubusercontent.com/u/74220172?v=4\" width=\"100;\" alt=\"xiersiki\"/\u003e\n                    \u003cbr /\u003e\n                    \u003csub\u003e\u003cb\u003eGong Che Yu\u003c/b\u003e\u003c/sub\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd align=\"center\"\u003e\n                \u003ca href=\"https://github.com/Dc9309\"\u003e\n                    \u003cimg src=\"https://avatars.githubusercontent.com/u/103992756?v=4\" width=\"100;\" alt=\"Dc9309\"/\u003e\n                    \u003cbr /\u003e\n                    \u003csub\u003e\u003cb\u003eDc9309\u003c/b\u003e\u003c/sub\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd align=\"center\"\u003e\n                \u003ca href=\"https://github.com/notshine\"\u003e\n                    \u003cimg src=\"https://avatars.githubusercontent.com/u/105473589?v=4\" width=\"100;\" alt=\"notshine\"/\u003e\n                    \u003cbr /\u003e\n                    \u003csub\u003e\u003cb\u003ePeng Liang\u003c/b\u003e\u003c/sub\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n            \u003ctd align=\"center\"\u003e\n                \u003ca href=\"https://github.com/wang-danni\"\u003e\n                    \u003cimg src=\"https://avatars.githubusercontent.com/u/126050206?v=4\" width=\"100;\" alt=\"wang-danni\"/\u003e\n                    \u003cbr /\u003e\n                    \u003csub\u003e\u003cb\u003ewang-danni\u003c/b\u003e\u003c/sub\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\t\u003ctr\u003e\n            \u003ctd align=\"center\"\u003e\n                \u003ca href=\"https://github.com/FATEHUI\"\u003e\n                    \u003cimg src=\"https://avatars.githubusercontent.com/u/62430897?v=4\" width=\"100;\" alt=\"FATEHUI\"/\u003e\n                    \u003cbr /\u003e\n                    \u003csub\u003e\u003cb\u003eFATEHUI\u003c/b\u003e\u003c/sub\u003e\n                \u003c/a\u003e\n            \u003c/td\u003e\n\t\t\u003c/tr\u003e\n\t\u003ctbody\u003e\n\u003c/table\u003e\n\u003c!-- readme: contributors -end --\u003e\n\n## ⚖️ License\n\nMIT © 506 Lab\n\n\u003e Keep shipping small improvements. Solve · Reflect · Evolve.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F506-fetl%2Fone-question-per-day","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F506-fetl%2Fone-question-per-day","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F506-fetl%2Fone-question-per-day/lists"}