lc-rs
can compile the annotation of your solutions to markdown!sh
cargo install leetcode-cli
Please make sure you have logined in leetcode.com with chrome, the cookie plugin of leetcode-cil can work on both OSX and Linux, username and password are not required, and if you are on other platforms or your cookies just don't want to be catched, please checkout this.
Please make sure you have logined in leetcode.com
with chrome
, more info plz checkout this
```sh leetcode 0.2.3 clearloop udtrokia@163.com Here's to the crazy ones 👻
USAGE: leetcode [FLAGS] [SUBCOMMAND]
FLAGS: -d, --debug debug mode -h, --help Prints help information -V, --version Prints version information
SUBCOMMANDS: data Manage Cache [aliases: d] edit Edit question by id [aliases: e] exec Submit solution [aliases: x] list List problems [aliases: l] pick Pick a problem [aliases: p] stat Show simple chart about submissions [aliases: s] test Edit question by id [aliases: t] help Prints this message or the help of the given subcommand(s) ```
For example, if your config is:
toml
[code]
lang = "rust"
editor = "emacs"
sh
leetcode pick 1
```sh [1] Two Sum is on the run...
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
Example:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1]. ```
sh
leetcode edit 1
```rust
impl Solution {
pub fn two_sum(nums: Vec
for (i, e) in nums.iter().enumerate() {
if let Some(v) = m.get(&(target - e)) {
return vec![*v, i as i32];
}
m.insert(*e, i as i32).unwrap_or_default();
}
return vec![];
}
} ```
sh
leetcode test 1
```sh
Accepted Runtime: 0 ms
Your input: [2,7,11,15], 9 Output: [0,1] Expected: [0,1]
```
sh
leetcode submit 1
```
Success
Runtime: 0 ms, faster than 100% of Rustonline submissions for Two Sum.
Memory Usage: 2.4 MB, less than 100% of Rustonline submissions for Two Sum.
```
The cookie plugin of leetcode-cil can work on OSX and Linux, If you are on other platforms or your cookies just don't want to be catched, you can handwrite your LeetCode Cookies to ~/.leetcode/leetcode.toml
```toml
leetcode.toml
file is placed at ~/.leetcode/leetcode.toml
[cookies] csrf = "..." session = "..." ```
For Example, if you're using chrome to login to leetcode.com.
Open chrome and paste the link below to the chrome linkbar
.
sh
chrome://settings/cookies/detail?site=leetcode.com
Copy the contents of LEETCODE_SESSION
and csrftoken
.
Paste them to session
and csrf
.
```toml
leetcode.toml
file is placed at ~/.leetcode/leetcode.toml
[cookies] csrf = "${csrftoken}" session = "${LEETCODE_SESSION}" ```
If we want to filter leetcode questions using our own python scripts, what should we do?
For example, our config is:
```toml
leetcode.toml
file is placed at ~/.leetcode/leetcode.toml
[storage] scripts = "scripts" ```
We write our python scripts:
```python
import json;
def plan(sps, stags):
##
# print
in python is supported,
# if you want to know the data structures of these two args,
# just print them
##
problems = json.loads(sps)
tags = json.loads(stags)
ret = []
tm = {}
for tag in tags:
tm[tag["tag"]] = tag["refs"];
for i in problems:
if i["level"] == 1 and str(i["id"]) in tm["linked-list"]:
ret.append(str(i["id"]))
# return is `List[string]`
return ret
```
Then we can run filter as what we write now:
sh
leetcode list -p plan1
Well done, enjoy it!
PR is welcome, here it is.
MIT