mirror of
https://github.com/prdlk/dotfiles.git
synced 2026-11-02 19:32:43 +00:00
74 lines
3.2 KiB
Markdown
74 lines
3.2 KiB
Markdown
---
|
||||
|
|
description: Add super-simple line-by-line comments to a LeetCode solution file
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
Add beginner-level line-by-line comments to the LeetCode solution file at: $1
|
|||
|
|
|
|||
|
|
## Rules
|
|||
|
|
|
|||
|
|
1. **Read the file first.** It follows the standard on-disk format:
|
|||
|
|
- A `/* ... */` header block containing problem number, title, difficulty, URL, description, examples, and constraints
|
|||
|
|
- A JSDoc `@param`/`@return` block
|
|||
|
|
- The solution function(s)
|
|||
|
|
|
|||
|
|
2. **Never touch the header block or JSDoc block.** Preserve them byte-for-byte.
|
|||
|
|
|
|||
|
|
3. **Never change the code.** Do not rename variables, reformat logic, alter whitespace inside expressions, or "improve" anything. Comments only. The file must produce an identical AST after your edit.
|
|||
|
|
|
|||
|
|
4. **Comment style — explain as if to a complete beginner who has never programmed:**
|
|||
|
|
- One comment line (or short block) ABOVE each meaningful line/statement
|
|||
|
|
- Use plain everyday language and physical metaphors:
|
|||
|
|
- object/map → "box" ("Create an empty box to count how many times each number appears")
|
|||
|
|
- increment → "add 1 to its count"
|
|||
|
|
- `(freq[x] || 0) + 1` → "If we already saw this number, add 1 to its count. If we never saw it before, start counting from 1"
|
|||
|
|
- sort comparator → spell out the rule in words ("put the letter that appears MORE times first; if tied, alphabetical order")
|
|||
|
|
- return → say WHAT is being returned and WHY in plain words
|
|||
|
|
- Explain the WHY, not just the WHAT ("so the next bigger numbers know there are more smaller ones")
|
|||
|
|
- Inline comments (`// ...` at end of line) are fine for short trailing clarifications like `.join('')` → "glue the sorted letters back into a string"
|
|||
|
|
- No jargon without immediate translation: if you must say "index", follow with "(its position)"
|
|||
|
|
|
|||
|
|
5. **Add a section banner** above the solution function in this exact style:
|
|||
|
|
```js
|
|||
|
|
// ============================================
|
|||
|
|
// <problem number>. <problem title>
|
|||
|
|
// ============================================
|
|||
|
|
```
|
|||
|
|
Pull the number and title from the header block.
|
|||
|
|
|
|||
|
|
6. **Multiple solutions in one file:** comment every one of them, each with its own banner (append "– Approach 2" etc. to the banner title).
|
|||
|
|
|
|||
|
|
7. **Extra instructions** (if provided after the file path): $@
|
|||
|
|
|
|||
|
|
8. **After editing**, print a one-line confirmation: file path + number of comment lines added. Nothing else.
|
|||
|
|
|
|||
|
|
## Example transformation
|
|||
|
|
|
|||
|
|
Input body:
|
|||
|
|
```js
|
|||
|
|
var smallerNumbersThanCurrent = function (nums) {
|
|||
|
|
const freq = {};
|
|||
|
|
for (let x of nums) freq[x] = (freq[x] || 0) + 1;
|
|||
|
|
return nums.map((x) => smaller[x]);
|
|||
|
|
};
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Output body:
|
|||
|
|
```js
|
|||
|
|
// ============================================
|
|||
|
|
// 1365. How Many Numbers Are Smaller Than the Current Number
|
|||
|
|
// ============================================
|
|||
|
|
|
|||
|
|
var smallerNumbersThanCurrent = function (nums) {
|
|||
|
|
// Create an empty box to store how many times each number appears
|
|||
|
|
const freq = {};
|
|||
|
|
|
|||
|
|
// Go through every number in the list one by one
|
|||
|
|
// If we already saw this number, add 1 to its count
|
|||
|
|
// If we never saw it before, start counting from 1
|
|||
|
|
for (let x of nums) freq[x] = (freq[x] || 0) + 1;
|
|||
|
|
|
|||
|
|
// Go through the original list and replace each number
|
|||
|
|
// with "how many numbers are smaller than it"
|
|||
|
|
return nums.map((x) => smaller[x]);
|
|||
|
|
};
|
|||
|
|
```
|