Skip to main content

Run LeetCode-style Python solutions against local TOML test cases.

Project description

Leet-Chaser

本地运行 leetcode solution 的命令行框架。

pip 安装运行

python -m pip install leet-chaser
leet-chaser --help

安装后可以直接使用 leet-chaser 命令:

leet-chaser init two-sum
leet-chaser run two-sum

uvx 直接运行

不想把命令安装到当前环境时,可以用 uvx 临时运行:

uvx leet-chaser --help
uvx leet-chaser init two-sum
uvx leet-chaser run two-sum

使用方法

STEP 1: 初始化题目目录

leet-chaser init two-sum

命令会在当前目录创建一个题目文件夹:

two-sum/
├── solution.py
└── cases.toml

STEP 2: 编写 solution.py

from typing import List


class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        seen = {}
        for index, num in enumerate(nums):
            rest = target - num
            if rest in seen:
                return [seen[rest], index]
            seen[num] = index
        return []

STEP 3: 填写 cases.toml

entrypoint 是 solution 里的入口方法名。input 是传给入口方法的位置参数数组,output 是期望返回值。

entrypoint = "twoSum"

[[cases]]
input = [[2, 7, 11, 15], 9]
output = [0, 1]

[[cases]]
input = [[3, 2, 4], 6]
output = [1, 2]

[[cases]]
input = [[3, 3], 6]
output = [0, 1]

链表题可以通过顶级类型元数据把数组解析成节点对象:

entrypoint = "reverseList"
input_types = ["linked_list"]
output_type = "linked_list"

[[cases]]
input = [[1, 2, 3]]
output = [3, 2, 1]

更多单链表、双向链表和循环链表写法见 docs/advanced-case-types.md

STEP 4: 运行验证

leet-chaser run two-sum

STEP 5: 调试单个用例

把当前要排查的用例写入 debug.toml,格式和 cases.toml 一致,但只保留一个 [[cases]]

entrypoint = "twoSum"

[[cases]]
input = [[2, 7, 11, 15], 9]
output = [0, 1]

运行 debug 命令会默认读取当前题目目录下的 debug.toml,并逐行打印入口函数的变量变化:

leet-chaser debug two-sum
leet-chaser debug two-sum -t seen -t rest
leet-chaser debug two-sum -c two-sum/custom-debug.toml

标准示例

仓库内置了 LeetCode 1. Two Sum 的标准示例:

uv run leet-chaser run examples/two-sum

也内置了 LeetCode 206. Reverse Linked List 示例,用来展示 linked_list 类型元数据:

uv run leet-chaser run examples/reverse-linked-list

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

leet_chaser-0.1.3.tar.gz (55.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

leet_chaser-0.1.3-py3-none-any.whl (13.7 kB view details)

Uploaded Python 3

File details

Details for the file leet_chaser-0.1.3.tar.gz.

File metadata

  • Download URL: leet_chaser-0.1.3.tar.gz
  • Upload date:
  • Size: 55.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for leet_chaser-0.1.3.tar.gz
Algorithm Hash digest
SHA256 2e0f4f895166556c2a1f8db5887f6d84fc8fd36607a422228a4d10ac1625fb10
MD5 b033a4b41c352720b0232b17eb824a54
BLAKE2b-256 5b7d2ece8315fd3fefd4859f64dc9961113a414e5ce7026b673107e2b328b58f

See more details on using hashes here.

Provenance

The following attestation bundles were made for leet_chaser-0.1.3.tar.gz:

Publisher: publish.yml on gawainx/leet-chaser

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file leet_chaser-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: leet_chaser-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 13.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for leet_chaser-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b507788690a257cbf34618c44460e9c69b861ff062a19b7019d2c6afb8447364
MD5 fd8b7fb134c7440a8e490c3ec5b03a47
BLAKE2b-256 174fa1bd3e64ed54befce808c1184deacf2918931e84aaa50a8c0530b4f38c7d

See more details on using hashes here.

Provenance

The following attestation bundles were made for leet_chaser-0.1.3-py3-none-any.whl:

Publisher: publish.yml on gawainx/leet-chaser

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page