| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
A cli tool to enjoy leetcode!
Great thanks to leetcode.com, an really awesome website!
node.js (npm included), please follow the installation guide below:
From npm repo:
$ sudo npm install -g leetcode-cli
From source code:
$ git clone http://github.com/skygragon/leetcode-cli $ cd leetcode-cli && npm install && sudo npm install -g .
Read help first $ lc help Login with your leetcoe account $ lc user -l Browse all problems $ lc list Select one problem $ lc show 1 -g -l cpp Coding it! Run test(s) and pray $ lc test ./two-sum.cpp -t '[3,2,4]\n7' Submit final solution! $ lc submit ./two-sum.cpp
list [keyword] list problems show <keyword> show problem by name or index submit <filename> submit final solution to leetcode test <filename> send solution to leetcode and run test user login/logout with leetcode account version show version info
Navigate all the problems. The heading ✔ means you have AC-ed the problem.
$ lc list [385] Mini Parser Medium (26.5%) ✘ [384] Shuffle an Array Medium (45.7%) ✔ [383] Ransom Note Easy (44.5%) ✔ [382] Linked List Random Node Medium (46.6%) ...... ✔ [ 4] Median of Two Sorted Arrays Hard (19.6%) ✔ [ 3] Longest Substring Without Repeating Characters Medium (22.9%) ✔ [ 2] Add Two Numbers Medium (24.5%) ✔ [ 1] Two Sum Easy (25.6%)
Example
$ lc list -q Dml array 🔒 [360] Sort Transformed Array Medium (41.0%) 🔒 [325] Maximum Size Subarray Sum Equals k Medium (40.9%)
Select a problem to fight. With -g+-l, the code template could be auto generated for you.
$ lc show 1 -g -l cpp [1] Two Sum (File: two-sum.cpp) https://leetcode.com/problems/two-sum/ * Easy (25.6%) * Total Accepted: 274880 * Total Submissions: 1074257 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. Example: Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1]. UPDATE (2016/2/13): The return format had been changed to zero-based indices. Please read the above updated description carefully.
-g to generate source file.
-d to generate source file with problem description plus word wrapping.
-l to choose programming language. (Depends on which langs are provided on leetcode)
Instead of index number, you can use name to select a problem.
$ lc submit ./two-sum.cpp ✔ Accepted ✔ 16/16 cases passed (12 ms)
Customize your testcase and run it against leetcode.
$ lc test ./two-sum.cpp -t '[3,2,4]\n7' Input data: [3,2,4] 7 Your ✔ runtime: 0 ms ✘ answer: [1,2] ✔ output: Expected ✔ runtime: 0 ms ✔ answer: [0,2] ✔ output:
Login with your leetcode account (username or email).
$ lc user -l login: <account> pass: Successfully login as <account>
Eaxmple
$ lc user -s You are now login as skygragon Easy 72/95 (75.79%) [+++++++++++++++++++++++.......] Medium 97/194 (50.00%) [+++++++++++++++...............] Hard 27/82 (32.93%) [++++++++++....................]
$ lc version 0.4.0
Example
$ lc version -v _ _ _ | | | | | | | | ___ ___| |_ ___ ___ __| | ___ | |/ _ \/ _ \ __|/ __|/ _ \ / _` |/ _ \ | | __/ __/ |_ (__| (_) | (_| | __/ |_|\___|\___|\__|\___|\___/ \__,_|\___| CLI v0.4.0 [Environment] Cache: /Users/skygragon/.lc/ Config: /Users/skygragon/.lcconfig [Configuration] BASE_URL: https://leetcode.com LOGIN_URL: https://leetcode.com/accounts/login/ PROBLEMS_URL: https://leetcode.com/api/problems/algorithms/ PROBLEM_URL: https://leetcode.com/problems/$id TEST_URL: https://leetcode.com/problems/$key/interpret_solution/ SUBMIT_URL: https://leetcode.com/problems/$key/submit/ VERIFY_URL: https://leetcode.com/submissions/detail/$id/check/ LANG: java USE_COLOR: true AUTO_LOGIN: true
Copy .lc-completion.bash to your home directory, and source it in .bashrc (Linux) or .bash_profile (MacOS).
$ cp .lc-completion.bash ~ $ echo "source ~/.lc-completion.bash" >> ~/.bashrc $ source ~/.bashrc $ lc list --<tab> --help --keyword --query --stat
Or use configuration setting, see below.
Create a file named .lcconfig in your home directory.
Example
{
"LANG": "java",
"USE_COLOR": true,
"AUTO_LOGIN": false
}
Leetcode.com is restricting one session only in the same time, which means if you have login same account otherwhere, the existing login session will be expired immediately. This will greatly harm your experience since you have to re-login again and again among different sessions.
However leetcode-cli will help some one this.It will try to save you from this trial and re-login transparently without interrupting your current work whenever it notices the session is already expired. To enable this in your config:
"AUTO_LOGIN": true
NOTE: if enabled, your PASSWORD will be persisted locally to achieve auto login, so PLEASE be careful to ONLY enable this on your OWN computer for the sake of security!
| Back | FazBrowse Home | New Git URL |