@@ -13,13 +13,12 @@ Over time I found that the answer varies, depending on progress, needs, and goal
13
13
``` git clone https://github.com/evliang/leetcode-problem-picker.git ```
14
14
15
15
## Usage:
16
- ``` python lcpp.py [--topic " stack, trie, graph,dp" ] [--list " airbnb, blind75, to_revisit" ] [-k 5] [-i] ```
16
+ ``` python lcpp.py [-t stack trie graph dp ] [--list airbnb google blind75 skipped ] [-k 5] [-i] ```
17
17
18
18
```
19
- --topic -t selects from a pool of problems associated with a subject (according to leetcode)
20
- see constants.py for list of options
19
+ --topic_list -t selects from a pool of problems associated with a subject (e.g. trie, greedy, graph)
21
20
--list -l chooses problems from one or more text files (comma-delimited)
22
- --count -k number of problems to get
21
+ --num_problems -k number of problems to get
23
22
--interactive -i interactive mode. Preferred way to input data. See section below for more info.
24
23
note: no topic or list will result in a problem randomly being selected
25
24
```
@@ -30,18 +29,17 @@ Displays information about a specific problem: Name, difficulty, Acceptance rate
30
29
31
30
## Interactive Mode:
32
31
This mode selects and displays a single problem and waits for input:
33
- (TODO: provide screenshot)
34
32
35
33
```
36
34
info displays details about problem. problem name, difficulty, acceptance rate
37
35
hint displays related topics
38
36
y/n,num_errs,time data regarding attempt. See Completed Problems section for more details
39
37
easy mark as completed with low completion time, then selects a different problem
40
38
hard adds to a hard/skipped list. selects a less similar, less challenging problem
41
- revisit
42
- refresh
43
- pause
44
- break
39
+ revisit [ID] mark problem as one to revisit later
40
+ refresh [ID] mark problem as one to "refresh" on later
41
+ pause pause the timer
42
+ break take a break. restarts the timer
45
43
quit stop the program
46
44
```
47
45
@@ -58,26 +56,4 @@ time integer. number of minutes spent on the problem
58
56
date DateTime. date completed
59
57
num_errs float. # mistakes made. Float to differentiate minor from major errors.
60
58
```
61
- 3 . interactive mode: Solve a problem after it is assigned, then record results before getting the next problem. Appends results to completed.csv.
62
-
63
- ## Keeping these lists up-to-date
64
- constants.py contains list of problem numbers associated for every subject
65
- Also included are company files. Possibly outdated, came from another repo.
66
-
67
- If you have leetcode premium and want to keep this info up-to-date:
68
- 1 . Visit desired problem set e.g. [ "Facebook"] ( https://leetcode.com/company/facebook/ )
69
- 2 . Display All rows in one page
70
- 3 . open up browser's Developer Tools (F12), and from console, run
71
-
72
- ``` console.log(Array.from(document.querySelectorAll('.reactable-data tr td[label="#"]')).map(x => x.textContent).toString()) ```
73
-
74
- 4 . Copy the resulting list into text file
75
- 5 . Send PR? :)
76
-
77
- ## TODO
78
-
79
- 1 . Clean up and prettify what I have. Stay tuned.
80
- 2 . Support multiple ways to handle completed problems
81
- 3 . Improve interactive mode
82
- 4 . Level Up: User maintains a list of attempted problems. Program combines this with each problem’s "acceptance rate" to approximate a "skill range" for each topic (e.g. Hard 24-28% for Trees, Medium 31-45% for graphs).
83
- 5 . Weighted random
59
+ 3 . interactive mode: Solve a problem after it is assigned, then record results before getting the next problem. Appends results to completed.csv.
0 commit comments