From 85d763c14360daad83a74a4e7a9bfdc7d5bf9cae Mon Sep 17 00:00:00 2001 From: Wisaroot <66859294+wisarootl@users.noreply.github.com> Date: Wed, 17 Sep 2025 00:28:45 +0700 Subject: [PATCH 01/41] docs: update README.md (#47) - update README.md - update agent rules - add llm-assisted-problem-creation.md --- .amazonq/rules/problem-creation.md | 6 +- .amazonq/rules/test-quality-assurance.md | 4 +- Makefile | 2 +- README.md | 147 ++++++++++++------ docs/images/generated-solution.png | Bin 0 -> 58317 bytes docs/images/generated-test.png | Bin 0 -> 207839 bytes docs/images/linkedlist-str-viz.png | Bin 0 -> 21740 bytes docs/images/logs-in-test-solution.png | Bin 0 -> 156936 bytes docs/images/problems-are-generated.png | Bin 0 -> 124050 bytes docs/images/problems-generation-2.png | Bin 0 -> 35479 bytes docs/images/problems-generation.png | Bin 0 -> 73623 bytes docs/images/prompt-with-context.png | Bin 0 -> 84211 bytes docs/images/readme-example.png | Bin 0 -> 83805 bytes docs/images/solution-boilerplate.png | Bin 0 -> 29520 bytes docs/images/test-example.png | Bin 0 -> 110123 bytes docs/images/tree-str-viz.png | Bin 0 -> 15613 bytes docs/llm-assisted-problem-creation.md | 144 +++++++++++++++++ leetcode/house_robber/README.md | 38 +++++ leetcode/house_robber/__init__.py | 0 leetcode/house_robber/helpers.py | 8 + leetcode/house_robber/playground.py | 29 ++++ leetcode/house_robber/solution.py | 21 +++ leetcode/house_robber/test_solution.py | 36 +++++ .../leetcode/json/problems/house_robber.json | 73 +++++++++ .../cli/resources/leetcode/json/tags.json5 | 2 +- leetcode_py/cli/utils/problem_finder.py | 32 ++-- poetry.lock | 10 +- pyproject.toml | 4 +- tests/test_problem_finder.py | 2 + 29 files changed, 480 insertions(+), 78 deletions(-) create mode 100644 docs/images/generated-solution.png create mode 100644 docs/images/generated-test.png create mode 100644 docs/images/linkedlist-str-viz.png create mode 100644 docs/images/logs-in-test-solution.png create mode 100644 docs/images/problems-are-generated.png create mode 100644 docs/images/problems-generation-2.png create mode 100644 docs/images/problems-generation.png create mode 100644 docs/images/prompt-with-context.png create mode 100644 docs/images/readme-example.png create mode 100644 docs/images/solution-boilerplate.png create mode 100644 docs/images/test-example.png create mode 100644 docs/images/tree-str-viz.png create mode 100644 docs/llm-assisted-problem-creation.md create mode 100644 leetcode/house_robber/README.md create mode 100644 leetcode/house_robber/__init__.py create mode 100644 leetcode/house_robber/helpers.py create mode 100644 leetcode/house_robber/playground.py create mode 100644 leetcode/house_robber/solution.py create mode 100644 leetcode/house_robber/test_solution.py create mode 100644 leetcode_py/cli/resources/leetcode/json/problems/house_robber.json diff --git a/.amazonq/rules/problem-creation.md b/.amazonq/rules/problem-creation.md index 9249475..8159741 100644 --- a/.amazonq/rules/problem-creation.md +++ b/.amazonq/rules/problem-creation.md @@ -4,7 +4,7 @@ When user requests a problem by **number** or **name/slug**, the assistant will: -1. **Scrape** problem data using `lcpy scrape` +1. **Scrape** problem data using `poetry run lcpy scrape` 2. **Transform** data into proper JSON template format 3. **CRITICAL: Include images** - Extract image URLs from scraped data and add to readme_examples with format: `![Example N](image_url)\n\n` before code blocks - Check scraped data for image URLs in the `raw_content` field @@ -23,10 +23,10 @@ When user requests a problem by **number** or **name/slug**, the assistant will: ```bash # Fetch by number -lcpy scrape -n 1 +poetry run lcpy scrape -n 1 # Fetch by slug -lcpy scrape -s "two-sum" +poetry run lcpy scrape -s "two-sum" ``` ## JSON Template Format diff --git a/.amazonq/rules/test-quality-assurance.md b/.amazonq/rules/test-quality-assurance.md index dd68f27..cff96ad 100644 --- a/.amazonq/rules/test-quality-assurance.md +++ b/.amazonq/rules/test-quality-assurance.md @@ -59,7 +59,7 @@ mv .cache/leetcode/{problem_name} leetcode/{problem_name} ```bash # Generate enhanced problem -lcpy gen -s {problem_name} -o leetcode --force +poetry run lcpy gen -s {problem_name} -o leetcode --force # Test specific problem make p-test PROBLEM={problem_name} @@ -80,7 +80,7 @@ poetry run python -m leetcode_py.tools.check_test_cases --threshold=10 --max=non # Check with custom threshold poetry run python -m leetcode_py.tools.check_test_cases --threshold=12 -# Generate from JSON template (uses lcpy internally) +# Generate from JSON template (uses poetry run lcpy internally) make p-gen PROBLEM={problem_name} FORCE=1 ``` diff --git a/Makefile b/Makefile index 83be5a8..7ce4dcd 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ PYTHON_VERSION = 3.13 -PROBLEM ?= daily_temperatures +PROBLEM ?= house_robber FORCE ?= 0 COMMA := , diff --git a/README.md b/README.md index bf5c4a9..e4c610a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# LeetCode Practice Repository ๐Ÿš€ +# LeetCode Practice Environment Generator ๐Ÿš€ [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=wisarootl_leetcode-py&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=wisarootl_leetcode-py) [![Security Rating](https://sonarcloud.io/api/project_badges/measure?project=wisarootl_leetcode-py&metric=security_rating)](https://sonarcloud.io/summary/new_code?id=wisarootl_leetcode-py) @@ -7,11 +7,11 @@ [![tests](https://img.shields.io/github/actions/workflow/status/wisarootl/leetcode-py/ci-test.yml?branch=main&label=tests&logo=github)](https://github.com/wisarootl/zerv/actions/workflows/ci-test.yml) [![release](https://img.shields.io/github/actions/workflow/status/wisarootl/leetcode-py/cd.yml?branch=main&label=release&logo=github)](https://github.com/wisarootl/zerv/actions/workflows/cd.yml) -A modern Python LeetCode practice environment that goes beyond basic problem solving. Features automated problem generation from LeetCode URLs, beautiful data structure visualizations (TreeNode, ListNode, GraphNode), and comprehensive testing with 12+ test cases per problem. Built with professional development practices including CI/CD, type hints, and quality gates. +A Python package to generate professional LeetCode practice environments. Features automated problem generation from LeetCode URLs, beautiful data structure visualizations (TreeNode, ListNode, GraphNode), and comprehensive testing with 10+ test cases per problem. Built with professional development practices including CI/CD, type hints, and quality gates. **What makes this different:** -- ๐Ÿค– **LLM-Assisted Workflow**: Generate new problems instantly with AI assistance +- ๐Ÿค– **[LLM-Assisted Workflow](#llm-assisted-problem-creation)**: Generate new problems instantly with AI assistance - ๐ŸŽจ **Visual Debugging**: Interactive tree/graph rendering with Graphviz and anytree - ๐Ÿงช **Production Testing**: Comprehensive test suites with edge cases and reproducibility verification - ๐Ÿš€ **Modern Python**: PEP 585/604 type hints, Poetry, and professional tooling @@ -21,14 +21,20 @@ A modern Python LeetCode practice environment that goes beyond basic problem sol **Current**: All 75 problems from [Grind 75](https://www.techinterviewhandbook.org/grind75/) - the most essential coding interview questions curated by the creator of Blind 75. -**Future**: Planned expansion to all 169 Grind problems for comprehensive interview preparation. +**Future**: Planned expansion to all free Grind problems for comprehensive interview preparation. ## ๐Ÿš€ Quick Start -### CLI Installation (Recommended) +### System Requirements + +- **Python 3.13+** - Modern Python runtime with latest type system features +- **Poetry** - Dependency management and packaging +- **Make** - Build automation (development workflows) +- **Git** - Version control system +- **Graphviz** - Graph visualization library (for data structure rendering) ```bash -# Install globally via pip +# Install the package pip install leetcode-py # Generate problems anywhere @@ -36,31 +42,26 @@ lcpy gen -n 1 # Generate Two Sum lcpy gen -t grind-75 # Generate all Grind 75 problems lcpy list -t grind-75 # List available problems lcpy scrape -n 1 # Fetch problem data + +# Start practicing +cd leetcode/two_sum +python -m pytest test_solution.py # Run tests +# Edit solution.py, then rerun tests ``` -### Development Setup +### Example ```bash -# Clone and setup for development -git clone https://github.com/wisarootl/leetcode-py.git -cd leetcode-py -poetry install - -# Start with existing Grind 75 problems -make gen-all-problems # Regenerates all problems with TODO placeholders +lcpy gen --problem-tag grind-75 --output leetcode # Generate all Grind 75 problems +``` -# Practice a specific problem -make p-test PROBLEM=two_sum -# Edit leetcode/two_sum/solution.py, then rerun tests +![Problem Generation](docs/images/problems-generation.png) -# Run all tests -make test -``` +_Bulk generation output showing "Generated problem:" messages for all 75 Grind problems_ -## ๐Ÿ“‹ Prerequisites +![Problem Generation 2](docs/images/problems-generation-2.png) -- Python 3.13+ -- Poetry, Make, Git, Graphviz +_Generated folder structure showing all 75 problem directories after command execution_ ## ๐Ÿ“ Problem Structure @@ -70,42 +71,77 @@ Each problem follows a consistent, production-ready template: leetcode/two_sum/ โ”œโ”€โ”€ README.md # Problem description with examples and constraints โ”œโ”€โ”€ solution.py # Implementation with type hints and TODO placeholder -โ”œโ”€โ”€ test_solution.py # Comprehensive parametrized tests (12+ test cases) +โ”œโ”€โ”€ test_solution.py # Comprehensive parametrized tests (10+ test cases) โ”œโ”€โ”€ helpers.py # Test helper functions โ”œโ”€โ”€ playground.py # Interactive debugging environment (converted from .ipynb) โ””โ”€โ”€ __init__.py # Package marker ``` +![README Example](docs/images/readme-example.png) + +_README format that mirrors LeetCode's problem description layout_ + +![Solution Boilerplate](docs/images/solution-boilerplate.png) + +_Solution boilerplate with type hints and TODO placeholder_ + +![Test Example](docs/images/test-example.png) + +_Comprehensive parametrized tests with 10+ test cases - executable and debuggable in local development environment_ + +![Test Logging](docs/images/logs-in-test-solution.png) + +_Beautiful colorful test output with loguru integration for enhanced debugging and test result visualization_ + ## โœจ Key Features ### Production-Grade Development Environment - **Modern Python**: PEP 585/604 type hints, snake_case conventions - **Comprehensive Linting**: black, isort, ruff, mypy with nbqa for notebooks -- **High Test Coverage**: 12+ test cases per problem including edge cases +- **High Test Coverage**: 10+ test cases per problem including edge cases - **Beautiful Logging**: loguru integration for enhanced test debugging - **CI/CD Pipeline**: Automated testing, security scanning, and quality gates ### Enhanced Data Structure Visualization -- **TreeNode**: Beautiful tree rendering with anytree and Graphviz -- **ListNode**: Clean arrow-based visualization (`1 -> 2 -> 3`) -- **Interactive Debugging**: Multi-cell playground environment +Professional-grade visualization for debugging complex data structures with dual rendering modes: + +- **TreeNode**: Beautiful tree rendering with anytree and Graphviz integration +- **ListNode**: Clean arrow-based visualization with cycle detection +- **GraphNode**: Interactive graph rendering for adjacency list problems +- **DictTree**: Box-drawing character trees perfect for Trie implementations + +#### Jupyter Notebook Integration (HTML Rendering) -![Tree Visualization](https://raw.githubusercontent.com/wisarootl/leetcode-py/main/docs/images/tree-viz.png) -_Beautiful tree rendering with anytree and Graphviz_ +![Tree Visualization](docs/images/tree-viz.png) -![LinkedList Visualization](https://raw.githubusercontent.com/wisarootl/leetcode-py/main/docs/images/linkedlist-viz.png) -_Clean arrow-based list visualization_ +_Interactive tree visualization using Graphviz SVG rendering in Jupyter notebooks_ + +![LinkedList Visualization](docs/images/linkedlist-viz.png) + +_Professional linked list visualization with Graphviz in Jupyter environment_ + +#### Terminal/Console Output (String Rendering) + +![Tree String Visualization](docs/images/tree-str-viz.png) + +_Clean ASCII tree rendering using anytree for terminal debugging and logging_ + +![LinkedList String Visualization](docs/images/linkedlist-str-viz.png) + +_Simple arrow-based list representation for console output and test debugging_ ### Flexible Notebook Support -- **Template Generation**: Creates Jupyter notebooks (`.ipynb`) by default -- **Repository State**: This repo uses Python files (`.py`) for better version control -- **User Choice**: Use `make nb-to-py` to convert notebooks to Python files, or keep as `.ipynb` for interactive development +- **Template Generation**: Creates Jupyter notebooks (`.ipynb`) by default with rich data structure rendering +- **User Choice**: Use `jupytext` to convert notebooks to Python files, or keep as `.ipynb` for interactive exploration +- **Repository State**: This repo converts them to Python files (`.py`) for better version control +- **Dual Rendering**: Automatic HTML visualization in notebooks, clean string output in terminals -![Notebook Example](https://raw.githubusercontent.com/wisarootl/leetcode-py/main/docs/images/notebook-example.png) -_Interactive multi-cell playground for each problem_ +![Notebook Example](docs/images/notebook-example.png) + +_Interactive multi-cell playground with rich data structure visualization for each problem_ ## ๐Ÿ”„ Usage Patterns @@ -131,31 +167,38 @@ lcpy list -d Medium # Filter by difficulty lcpy scrape -n 1 > two_sum.json # Save problem data ``` -### Development Workflow +## ๐Ÿ› ๏ธ Development Setup -For repository development and customization: +For working within this repository to generate additional LeetCode problems using LLM assistance: ```bash -# Regenerate all 75 problems with fresh TODO placeholders -make gen-all-problems +# Clone repository for development +git clone https://github.com/wisarootl/leetcode-py.git +cd leetcode-py +poetry install + +# Generate problems from JSON templates +make p-gen PROBLEM=problem_name +make p-test PROBLEM=problem_name -# Work through problems systematically -make p-test PROBLEM=two_sum -make p-test PROBLEM=valid_palindrome -make p-test PROBLEM=merge_two_sorted_lists +# Regenerate all existing problems +make gen-all-problems ``` ### LLM-Assisted Problem Creation -If you need more problems beyond Grind 75, use an LLM assistant in your IDE (Cursor, GitHub Copilot Chat, Amazon Q, etc.): +To extend the problem collection beyond the current catalog, leverage an LLM assistant within your IDE (Cursor, GitHub Copilot Chat, Amazon Q, etc.). + +๐Ÿ“– **[Complete LLM-Assisted Problem Creation Guide](docs/llm-assisted-problem-creation.md)** - Comprehensive guide with screenshots and detailed workflow. + +**Quick Start:** ```bash -# Example commands to give your LLM assistant: -"Create LeetCode problem 146 (LRU Cache)" -"Add problem 'Word Ladder' by number 127" -"Generate problem 'Serialize and Deserialize Binary Tree'" +# Problem generation commands: +"Add problem 198. House Robber" +"Add problem 198. House Robber. tag: grind" -# For test enhancement (when you need more comprehensive test coverage): +# Test enhancement commands: "Enhance test cases for two_sum problem" "Fix test reproducibility for binary_tree_inorder_traversal" ``` @@ -201,6 +244,8 @@ poetry run python -m leetcode_py.tools.check_test_cases --threshold=10 ### CLI Commands (Global) +๐Ÿ“– **[Complete CLI Usage Guide](docs/cli-usage.md)** - Detailed documentation with all options and examples. + ```bash # Generate problems lcpy gen -n 1 # Single problem by number diff --git a/docs/images/generated-solution.png b/docs/images/generated-solution.png new file mode 100644 index 0000000000000000000000000000000000000000..40ac8ef7905af816a271b10e7d56ac757d79293e GIT binary patch literal 58317 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 literal 0 HcmV?d00001 diff --git a/docs/images/generated-test.png b/docs/images/generated-test.png new file mode 100644 index 0000000000000000000000000000000000000000..c41b14bda93324af763062186e323a168d663ae3 GIT binary patch literal 207839 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