Files
omp/agent/commands/leetcode-eli5.md
T

75 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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]);
};
```