DrillLab
Coding 题Coding problems

一道一道写One problem at a time

全站 25 道成型的 coding 题都在这儿。题面、需求、参考答案全部引用原来那一节,不是另抄一份。其中 21 道能直接在浏览器里写完并跑测试。All 25 coding problems, pulled from the lessons rather than copied. 21 of them run in the browser.

0 / 25道打过勾ticked done
只有你自己打勾才会加。不做自动判定 —— 测试绿了不等于你不看答案也能写出来。Only your own tick counts. Green tests do not prove you could write it again from scratch.
先读题,别先看答案Read the problem before the answer

每道题的页面默认只有题面 —— 工作区要点一下才开,讲解和答案在门后面。 这个顺序是故意的:先自己卡住一会儿,后面看讲解才有用。Each page shows only the problem by default — the workspace opens on a click, and the walkthrough and answer sit behind gates. That order is deliberate: getting stuck for a while first is what makes the walkthrough worth reading.

沙箱有两档。第一遍用带脚手架学会;第二遍点空白重来,实现文件全清空,只留测试 —— 那一遍才算验收。The sandbox has two modes. Learn it the first time with the scaffold; the second time hit start blank — every implementation file is emptied and only the tests remain. That pass is the one that counts.

题目Problems

筛出 10 道(共 25 道)。10 of 25 problems.
  1. 计时器(useEffect 清理函数)Timer (useEffect cleanup)React中等Medium约 25 分钟~25 min浏览器里能跑Runs in the browser6 条验收标准6 acceptance criteria
  2. 主题切换(Context + value 记忆化)Theme switch (Context plus a memoised value)React中等Medium约 30 分钟~30 min浏览器里能跑Runs in the browser7 条验收标准7 acceptance criteria
  3. 星级评分(hover 预览 + 受控双模式)Star rating (hover preview, controlled and uncontrolled)React中等Medium约 25 分钟~25 min浏览器里能跑Runs in the browser7 条验收标准7 acceptance criteria
  4. 写一个自定义 hook:useLocalStorageWrite a custom hook: useLocalStorageReact中等Medium约 25 分钟~25 min浏览器里能跑Runs in the browser7 条验收标准7 acceptance criteria
  5. Dropdown:点外面要关掉Dropdown: close it on an outside clickReact中等Medium约 25 分钟~25 min浏览器里能跑Runs in the browser5 条验收标准5 acceptance criteria
  6. 手写 throttle(leading + trailing)Write throttle yourself (leading and trailing)JavaScript中等Medium约 20 分钟~20 min浏览器里能跑Runs in the browser4 条验收标准4 acceptance criteria
  7. 手写 deepClone(防循环)Write deepClone yourself (handling cycles)JavaScript中等Medium约 25 分钟~25 min浏览器里能跑Runs in the browser5 条验收标准5 acceptance criteria
  8. 手写 Promise.all + allSettledWrite Promise.all and allSettled yourselfJavaScript中等Medium约 25 分钟~25 min浏览器里能跑Runs in the browser5 条验收标准5 acceptance criteria
  9. 手写 EventEmitter(on/off/once/emit)Write EventEmitter yourself (on / off / once / emit)JavaScript中等Medium约 20 分钟~20 min浏览器里能跑Runs in the browser4 条验收标准4 acceptance criteria
  10. 手写 LRUCache(用 Map 的插入序)Write LRUCache yourself (using Map insertion order)JavaScript中等Medium约 20 分钟~20 min浏览器里能跑Runs in the browser5 条验收标准5 acceptance criteria

为什么有的跑不了Why some can't run here

GraphQL subgraph 要真起一个服务,Spring 那道要 JVM 和 Maven —— 浏览器里都办不到。这两道给的是本机命令和期望输出,不给假编辑器The GraphQL subgraph needs a real server process, and the Spring one needs a JVM and Maven — neither can happen in a browser. Those two hand you local commands and the expected output, not a fake editor.