Skip to main content

A tool for studying Leetcode with Python

Project description

💻 Leetcode Study Tool

Tests Status Style Status Python Versions PyPi contributions welcome

Leetcode Study Tool Diagram

This package lets you get grokking as quickly as possible with Leetcode. It provides a command-line tool for interracting with Leetcode to create either an Excel file or Anki flashcards for study. Currently, this tool supports taking in a list of leetcode question slugs or URLs or popular study sets (including the Blind 75, Grind 75, and Neetcode 150).

🤔 Why?

This package was created as an opinionated alternative to other existing packages (as listed at the bottom of this README).

📥 Installation

$ pip install leetcode-study-tool

💻 Usage

usage: leetcode-study-tool [-h]
                           (--url URL | --file FILE | --preset {blind_75,grind_75,grind_169,neetcode_150,neetcode_all})
                           [--format {anki,excel}] [--csrf CSRF] [--output OUTPUT]
                           [--language LANGUAGE]

Generates problems from LeetCode questions in a desired format.

options:
  -h, --help            show this help message and exit
  --url URL, -u URL     The URL(s) or slug(s) of the LeetCode question(s) to generate
                        problem(s) for. (default: None)
  --file FILE, -f FILE  The file containing the URL(s) or slug(s) of the LeetCode question(s)
                        to generate problem(s) for. (default: None)
  --preset {blind_75,grind_75,grind_169,neetcode_150,neetcode_all}, -p {blind_75,grind_75,grind_169,neetcode_150,neetcode_all}
                        The preset to use to generate problem(s) for. (default: None)
  --format {anki,excel}, -F {anki,excel}
                        The format to save the Leetcode problem(s) in. (default: anki)
  --csrf CSRF, -c CSRF  The CSRF token to use for LeetCode authentication. (default: None)
  --output OUTPUT, -o OUTPUT
                        The output file to write the problem(s) to. (default: output.txt)
  --language LANGUAGE, -l LANGUAGE
                        The language to generate problem(s) for. (default: None)

💡 Example

In the simplest case, if you want to Grok the most commonly asked questions, you should generate from a preset. For example, generating Anki cards from the Grind 75 is as simple as

$ leetcode-study-tool -p grind_75

Perhaps, instead, you'd prefer to import questions that you've already worked on. In a directory with a file named questions.txt, where each line is either a Leetcode problem URL or slug (or a combination of both), we can run the command

$ leetcode-study-tool -f questions.txt 

which will generate the file output.txt. We can then open Anki to import these problems as demonstrated below, ensuring to select semicolon as a field separator.

anki demo

📒 Anki

When generating an Anki output, the resulting "cards" are saved as a .txt file. These cards include three fields:

  1. The front of the study card, containing the question ID, Title, URL, and problem description
  2. The publicly available solutions (and NeetCode solution, if available)
  3. The tags associated with the problem (i.e., if the problem involves a hash map, arrays, etc...)

📊 Excel

When generating an Excel output, the resulting questions are saved in an .xlsx file. Each problem includes the following fields:

  1. ID of the leetcode question
  2. Title of the leetcode question
  3. URL of the leetcode question
  4. Last date that this question was attempted by the user (please note that this is not pulled from your leetcode profile, but left for you to update as you progress in solving leetcode questions)
  5. The tags associated with the problem (i.e., if the problem involves a hash map, arrays, etc...)
  6. Neetcode video link (if it exists)
  7. Solution links for the problem (if they are reachable)
  8. Companies that have asked this question recently in interviews (if they are reachable)

🛣 Roadmap

  • Use TQDM to show card generation progress
  • Add support for exporting to an excel sheet
  • Add support for showing neetcode solutions on the back of the card as a
  • Add support for getting the difficulty of questions
  • Add support for fetching premium questions via authentification
  • Add support for importing cards into Quizlet
  • Add support for fetching questions by topic or tag link
  • Allow for the definition of custom formatters and outputs (including which fields are included or excluded)
  • Reach 90% test coverage

🔎 Other Usefull Stuff

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_study_tool-1.3.3.tar.gz (41.2 kB view details)

Uploaded Source

Built Distribution

leetcode_study_tool-1.3.3-py3-none-any.whl (37.1 kB view details)

Uploaded Python 3

File details

Details for the file leetcode_study_tool-1.3.3.tar.gz.

File metadata

  • Download URL: leetcode_study_tool-1.3.3.tar.gz
  • Upload date:
  • Size: 41.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.10.14

File hashes

Hashes for leetcode_study_tool-1.3.3.tar.gz
Algorithm Hash digest
SHA256 32221f596a68b1ec2995e3187f6d882cf7a9dc8ec96c15edd798fb5ad036865f
MD5 b96a2d8f8f7ad86a2dbb851db2a6bf43
BLAKE2b-256 0744813ff31fe7580b9785f84cf793358a482fa082f8c0f546dcb1da0b3893de

See more details on using hashes here.

File details

Details for the file leetcode_study_tool-1.3.3-py3-none-any.whl.

File metadata

File hashes

Hashes for leetcode_study_tool-1.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 de071ecd1f59ac475046f0743a4179ea785426644510a1564e6fb07eb49b19c1
MD5 9f706bab06550584a49a8be64dc77890
BLAKE2b-256 265b6b768efe459e4d0896bb5cc9668763e9290a8afd2ecca3aa45b540b063d2

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