DSA practice
DSA
Every number on this page is a live count of my LeetCode solutions repository, re-fetched from GitHub each time this page loads. What you are looking at is a count GitHub returned within the last hour, not a figure I typed in by hand and might forget to update.
Ledger
problems solved
solved in C++
solved in Python
last push
Difficulty
The split is what it is. I have not solved these evenly, and I am not going to make the chart pretend otherwise.
- EasyMethodregex-matched the "**Difficulty:**" line against 87/87 problem READMEs, fetched in parallel from raw.githubusercontent.com pinned to git tree c8c60d6DateSample sizen = 87Sourcegithub.com/UpayanGhosh/LeetCode/tree/c8c60d604fdc069912eaa1377643beead888ba83
- MediumMethodregex-matched the "**Difficulty:**" line against 87/87 problem READMEs, fetched in parallel from raw.githubusercontent.com pinned to git tree c8c60d6DateSample sizen = 87Sourcegithub.com/UpayanGhosh/LeetCode/tree/c8c60d604fdc069912eaa1377643beead888ba83
- HardMethodregex-matched the "**Difficulty:**" line against 87/87 problem READMEs, fetched in parallel from raw.githubusercontent.com pinned to git tree c8c60d6DateSample sizen = 87Sourcegithub.com/UpayanGhosh/LeetCode/tree/c8c60d604fdc069912eaa1377643beead888ba83
View as table
| Metric | Value | Method | Measured |
|---|---|---|---|
| Easy | 54 | regex-matched the "**Difficulty:**" line against 87/87 problem READMEs, fetched in parallel from raw.githubusercontent.com pinned to git tree c8c60d6 | |
| Medium | 32 | regex-matched the "**Difficulty:**" line against 87/87 problem READMEs, fetched in parallel from raw.githubusercontent.com pinned to git tree c8c60d6 | |
| Hard | 1 | regex-matched the "**Difficulty:**" line against 87/87 problem READMEs, fetched in parallel from raw.githubusercontent.com pinned to git tree c8c60d6 |
The pipeline
The mechanism here is the interesting part, not the count. A small server function calls GitHub’s Git Trees API once for a full recursive listing of the repository’s file tree, groups the files it gets back by problem directory, and counts a solved-in-this-language mark from the file extensions it finds. It then fetches every problem’s README from GitHub’s raw-content CDN in parallel and reads the difficulty off a machine-generated header line already present in every one of them. If any part of that fails (GitHub is unreachable, a response won’t parse, nothing comes back), the page shows a labelled failure instead of a wrong or a cached number.
Every file in this repository landed inside one short import window, not built up problem by problem over months. That’s why this page has no commit-history graph and no problems-per-week chart: either would dress up one afternoon of copying local solution folders into a public repository as a practice cadence that never happened.
What this doesn’t measure
This counts problems solved, not attempts, not time spent, and not interview readiness. A problem I passed on one clean submission and one I failed nine times before passing count exactly the same here. Solving a problem once and being ready to solve a new one under interview pressure are different skills, and this page only ever measures the first.