LeetCode solutions runner
Project description
Overview
LeetCode solutions runner
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
-
Install the library from PyPi
-
Go to LeetCode and pick a problem to solve
-
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
- Install the library from PyPi
- Go to LeetCode and pick a problem to solve
- Open your favourite IDE and import the
leetcode_runner
- Copy problem samples into some variable, like a
problem
, and copy the baseSolution
class that LeetCode provides LeetCode(problem, Solution).check()
will run these samples!- 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
Built Distribution
Hashes for leetcode_runner-0.0.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a80d80392043c1040951f9ed39a0a1885d6241634835c73eb6d4cb7460038a16 |
|
MD5 | a7568702402d90458c02c1e04ec703d7 |
|
BLAKE2b-256 | 2183709370cce8cd1bf1b59c3b3a4d6d7b8c0e79b2e4a9063e51a9aa97c12fd2 |