English | Türkçe
A structured C problem-solving archive that turns language foundations into repeatable algorithm, data-structure, and embedded-oriented practice.
Follow The First 100 | Learn Techniques | Browse All Solutions | Browse By Topic | Explore Practice Tracks | View Attempts | Türkçe
| Item | Current value |
|---|---|
| Accepted solutions | 261 |
| Easy / Medium / Hard | 155 / 102 / 4 |
| First 100 roadmap | 100 accepted |
| Focused practice tracks | 3 |
| Open attempts | 1 |
| Primary language | C |
This block is maintained by scripts/generate_indexes.py from problem metadata and repository contents.
- New to the archive: follow the completed First 100 learning roadmap in order.
- Learning why and when an algorithm works: open the problem-solving technique guide.
- Looking for one solution: search the generated problem index.
- Revising a technique: use the generated topic index.
- Preparing for embedded or electro-optical work: use the focused practice tracks.
- Returning to an unfinished idea: open attempts and learning notes.
| Goal | Document |
|---|---|
| Build algorithm fundamentals in sequence | Learning roadmap |
| Learn recognition signals, invariants, C patterns, and failure cases | Technique guide |
| Find every accepted solution | Problem index |
| Find stack, bitwise, matrix, linked-list, or window problems | Topic index |
| Follow embedded, matrix, or data-structure design blocks | Practice tracks |
| Review a failed approach without counting it as solved | Attempts |
| Add a solution without breaking indexes | Adding a problem |
The problem-solving technique guide separates the repository's recurring reasoning patterns into 35 theory-first chapters. Every chapter develops the mental model, invariant, correctness argument, selection boundaries, C risks, accepted-problem progression, and embedded or electro-optical connection. The Turkish edition follows the same chapter numbers and learning order.
The First 100 roadmap moves through arrays, strings, two pointers, stacks, linked lists, binary search, hashing, sliding windows, and a first tree/recursion step. It contains only the learning sequence; daily additions and focused tracks live elsewhere.
The practice track guide contains three ordered blocks:
- Bitwise / Embedded Essentials
- Matrix / 2D Array Essentials
- Data Structure Design Essentials
Each track states its prerequisite, purpose, C-specific skills, and recommended problem order.
Every accepted problem lives under problems/<number>-<slug>/:
problems/
0036-valid-sudoku/
README.md
solution.c
Some folders also keep a meaningful alternative such as a brute-force baseline or a second accepted approach. The problem README owns metadata, the short bilingual summary, reasoning, complexity notes when verified, and links back to the repository indexes.
Unaccepted work stays under attempts/ and is never included in accepted counts. ATTEMPTS.md records the result, why the approach failed, what knowledge is missing, and a concrete retry direction.
The archive pays special attention to C concerns that are easy to hide in higher-level languages:
- pointer and pointer-to-pointer parameters
returnSizeandreturnColumnSizes- heap allocation and caller ownership
- in-place buffers and null termination
- linked-node lifetime and explicit cleanup
- integer overflow, masks, shifts, and fixed-width reasoning
- circular indexing, stateful structs, and API lifecycle
These notes are included only where they are relevant to the submitted solution.
Create the numbered folder, add README.md and solution.c, then run:
python3 scripts/generate_indexes.py python3 scripts/generate_indexes.py --check
On Windows, py -3 can be used instead of python3. The script validates folder names, required files, duplicate numbers, metadata, attempts, generated indexes, snapshot values, encoding, and relative Markdown links. It does not claim that every LeetCode function is a standalone executable.
GitHub Actions checks documentation and repository structure, metadata and generated-index consistency, and internal links and encoding. It regenerates the indexes and fails if that process leaves an uncommitted diff. LeetCode entry-point functions are intentionally not treated as standalone executables.
This repository is the practice half of a larger learning system. Use Merd0/c-systems-foundation when a solution exposes a language gap:
This is an ongoing personal learning archive. Accepted solutions, attempts, explanations, and focused tracks continue to grow; generated indexes and CI keep the navigation honest.