Skip to main content

LeetCode solutions runner

Project description

Overview

LeetCode solutions runner

PyPI Version PyPI License

Installation

Install it directly into an activated virtual environment:

$ pip install leetcode-runner

or add it to your Poetry project:

$ poetry add leetcode-runner

Usage

  1. Install the library from PyPi

  2. Go to LeetCode and pick a problem to solve

  3. Copy the title slug from the URL (e.g is-subsequence) and execute in your terminal:

    leetcode pull is-subsequence
    

It will create a file called 392-is-subsequence.py and you can start coding straight away!

python 392-is-subsequence.py
# or like this, depends on how you manage your python
poetry run python 392-is-subsequence.py

------------------------------
[ FAILED ]
s = "abc", t = "ahbgdc"
Expected: True
Actual  : None
------------------------------
[ FAILED ]
s = "axc", t = "ahbgdc"
Expected: False
Actual  : None

Passed: 0/2

By default a method Solution doesn't do anything, that's why the answer is None. You need to actually solve the problem 😉.

Please read the next section to undestand how it works and also check the limitations section.

Usage (manual)

This is a legacy way to work with this library

  1. Install the library from PyPi
  2. Go to LeetCode and pick a problem to solve
  3. Open your favourite IDE and import the leetcode_runner
  4. Copy problem samples into some variable, like a problem, and copy the base Solution class that LeetCode provides
  5. LeetCode(problem, Solution).check() will run these samples!
  6. Pass your own samples into check function
from leetcode_runner import LeetCode, TestCase, Args
from typing import *

# Copied as is from the LeetCode
problem = """
Example 1:

Input: nums = [2,7,11,15], target = 9
Output: [0,1]
Output: Because nums[0] + nums[1] == 9, we return [0, 1].
Example 2:

Input: nums = [3,2,4], target = 6
Output: [1,2]
Example 3:

Input: nums = [3,3], target = 6
Output: [0,1]
"""

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        return [1, 2]

LeetCode(problem, Solution).check()

Will print:

------------------------------
[ FAILED ]
nums = [2,7,11,15], target = 9
Expected: [0, 1]
Actual  : [1, 2]
------------------------------
[ OK ]
nums = [3,2,4], target = 6
Expected: [1, 2]
Actual  : [1, 2]
------------------------------
[ FAILED ]
nums = [3,3], target = 6
Expected: [0, 1]
Actual  : [1, 2]

Passed: 1/3

Providing custom cases is also possible:

lc = LeetCode(problem, Solution)

lc.check(
    extra_cases=[
        TestCase(args=Args(nums=[0, 1, 2], target=3), answer=[1, 2]),
        # or
        TestCase(Args(nums=[0, 1], target=1), [0, 1])
    ]
)

Code snippet

Just copy & paste this in your IDE and start coding:

from leetcode_runner import LeetCode, TestCase, Args
from typing import *

PROBLEM = """

"""


class Solution:
    pass


LeetCode(PROBLEM, Solution).check(
    extra_cases=[

    ]
)

Requirements

  • Python 3.9+

Limitations

  • This tool uses Leetcode's GraphQL API under the hood, I'm not sure how long will it be available for public usage
  • This tool can download only public problems. Subscription-based requires authentication that is currently not implemented

This project was generated with cookiecutter using jacebrowning/template-python.

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

leetcode-runner-0.0.4.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

leetcode_runner-0.0.4-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file leetcode-runner-0.0.4.tar.gz.

File metadata

  • Download URL: leetcode-runner-0.0.4.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.10.2 Darwin/20.6.0

File hashes

Hashes for leetcode-runner-0.0.4.tar.gz
Algorithm Hash digest
SHA256 928005bdaa9bbf16ec233a97e316c19d2a5a2acea8993cc0d79e15761d345907
MD5 5789c4882330f2ad44316476851954a2
BLAKE2b-256 ce46c6cafaaa0435a7e569ab3570e3755820f127dd14728012a35f803eee8b42

See more details on using hashes here.

File details

Details for the file leetcode_runner-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: leetcode_runner-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.10.2 Darwin/20.6.0

File hashes

Hashes for leetcode_runner-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a80d80392043c1040951f9ed39a0a1885d6241634835c73eb6d4cb7460038a16
MD5 a7568702402d90458c02c1e04ec703d7
BLAKE2b-256 2183709370cce8cd1bf1b59c3b3a4d6d7b8c0e79b2e4a9063e51a9aa97c12fd2

See more details on using hashes here.

Supported by

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