Solve Leetcode problems
Install
- MacOs/Linux:
curl -LSfs https://japaric.github.io/trust/install.sh | sh -s -- --git dragfire/leetup- Cargo:
cargo install leetupNote: You will need to add
leetup.exeto 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
- Search by keyword:
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_codeDuring 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
