Skip to content
master
Go to file
Code

Latest commit

* Support more Lang

* Fix wrong Lang
bb5b287

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
Nov 6, 2020
ci
Nov 6, 2020
Nov 7, 2020
Nov 6, 2020
Jun 23, 2020

README.md

Rust Build Status crates Downloads

Solve Leetcode problems

Install

  • MacOs/Linux:
curl -LSfs https://japaric.github.io/trust/install.sh | sh -s -- --git dragfire/leetup
  • Cargo:
cargo install leetup
  • Windows:
    Download from releases. Extract the zipped x86_64 windows target file.

Note: You will need to add leetup.exe to PATH to access from Command Prompt.

Quick Start:

  • Login using Github: leetup user -g
  • Login using Cookie: leetup user -c
  • Pick a problem: leetup pick -l python 1
  • Test a problem: leetup test two-sum.py -t "[1,2]\n3"
  • Submit a problem: leetup submit two-sum.py
  • List/Show problems: leetup list
    • Search by keyword: leetup list <keyword>
    • Query easy: leetup list -q e
    • Order by Id, Title, Difficulty: leetup list -qE -oIdT
  • More Commands

Inject code fragments:

You can inject pieces of code that you frequently use in certain positions of the generated code file. Example: Standard library imports for each language can be put into a config. Leetup will pick it up and insert into the generated file.

Config:

Create ~/.leetup/config.json and customize according to your preference:

{
    "inject_code": {
        "rust": {
            "before_code": ["use std::rc::Rc;", "use std::collections::{HashMap, VecDeque};", "use std::cell::RefCell;"],
            "before_code_exclude": ["// Test comment", "// Test code"],
            "after_code": "\nstruct Solution; \n\nfn main() {\n    let solution = Solution::$func();\n\n}\n",
            "before_function_definition": null
        },
        "java": {
            "before_code": "import java.util.*;",
            "before_code_exclude": ["// Test comment", "// Test code"],
            "after_code": null,
            "before_function_definition": null
        },
        "python3": {
            "before_code": "import math",
            "before_code_exclude": ["# Test comment", "# Test code"],
            "after_code": ["if __name__ = \"__main__\":", "    solution = Solution()"],
            "before_function_definition": null
        }
    }
}

Generated code looks something like this in Rust:

// @leetup=custom
// @leetup=info id=1 lang=rust slug=two-sum

/*
* [SNIP]
*/
// @leetup=custom

// @leetup=inject:before_code_ex
// Test comment
// Test code
// @leetup=inject:before_code_ex

// @leetup=code

// @leetup=inject:before_code
use std::cell::RefCell;
use std::collections::{HashMap, VecDeque};
use std::rc::Rc;
// @leetup=inject:before_code

impl Solution {
    pub fn two_sum(nums: Vec<i32>, target: i32) -> Vec<i32> {}
}
// @leetup=code

// @leetup=inject:after_code
// This is helpful when you want to run this program locally
// and avoid writing this boilerplate code for each problem.
struct Solution;

fn main() {
    let solution = Solution::two_sum();
}

// @leetup=inject:after_code

During testing and submitting to Leetcode, only the chunk of code between @leetup=code will be submitted:

// @leetup=inject:before_code
use std::cell::RefCell;
use std::collections::{HashMap, VecDeque};
use std::rc::Rc;
// @leetup=inject:before_code

impl Solution {
    pub fn two_sum(nums: Vec<i32>, target: i32) -> Vec<i32> {
    }
}

Others are ignored!

Credit:

This project is inspired by: https://github.com/leetcode-tools/leetcode-cli

You can’t perform that action at this time.