Skip to content

Commit 5672faa

Browse files
authored
feat:instead new docs (#26)
* docs: finish the new document
1 parent d2d37d6 commit 5672faa

17 files changed

+758
-1916
lines changed

README.md

+171-378
Large diffs are not rendered by default.

README_CN.md

+296
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,296 @@
1+
# Leetcode practice
2+
3+
**中文文档**|[English Document](./README.md)|[日本語の文書](./README_JP.md)
4+
5+
## I.项目信息
6+
7+
### 1.简介
8+
9+
一句话介绍:“在编辑器中开始练习你的`leetcode`每日一题!”
10+
11+
如果,你想要在编辑器中编写你的题解...
12+
13+
如果,你想要简单快速的获取每日一题...
14+
15+
如果,你想要创建你自己的题解仓库...
16+
17+
那么,`leetcode-practice`将满足你的一切想要!
18+
19+
### 2.预览
20+
21+
![CLI-lc](./resources/images/lc-cli-h.png)
22+
23+
## II.使用须知
24+
25+
### 0. 预备条件
26+
27+
| 工具 | 备注 |
28+
|----------|:----------------:|
29+
| nodejs | lts |
30+
| git | lts |
31+
| computer | 能够运行chrome和代码编辑器 |
32+
| patience | 一颗能够坚持刷题的心 |
33+
34+
> note: nodejs:[nodejs安装向导](https://nodejs.org/en/learn/getting-started/how-to-install-nodejs)
35+
>
36+
> git:[git下载地址](https://git-scm.com/downloads)
37+
38+
### 1. 我可以怎么用? (三种方案供你选择)
39+
#### 方案A.脚手架 CLI (推荐)
40+
此方案是最为推荐的使用方案,通过脚手架指令`lc``lk``lf`自由灵活的在任意的目录中创建并检查你的题解。
41+
42+
> 使用预览
43+
44+
#### 方案B.模板项目 Template project (支持)
45+
46+
如果你想要快速的创建一个自己的题解库,可以使用我们的模板项目进行快速的创建github项目,并且获得完善的初始化内容。
47+
48+
> 使用预览
49+
50+
#### 方案C.插件 Plugin (支持,待开发)
51+
52+
如果你想在编辑器中通过点击操作按钮来创建题解,可以使用我们的编辑器插件(计划支持`WebStorm``VSCode`)在你的编辑器中创建题解。
53+
54+
> 使用预览
55+
56+
### 2. 我应该怎么用?(三种方案的详细的安装和使用教程)
57+
#### 方案A.脚手架 CLI
58+
59+
##### 1.安装
60+
61+
你可以使用任意一款npm包管理软件(例如*`*npm*`*,*`*yarn*`*,*`*pnpm*`*等)的在`项目`中或者`全局`进行安装。
62+
63+
```shell
64+
# 示例:全局安装
65+
# 使用npm进行全局安装
66+
npm install -g leetcode-practice
67+
# 使用pnpm进行安装
68+
pnpm install -g leetcode-practice
69+
# 使用yarn进行安装
70+
yarn global install leetcode-practice
71+
72+
# 示例:在项目中安装
73+
yarn add --dev leetcode-practice
74+
```
75+
76+
> 提示: 在项目中安装和全局安装的区别在于脚手架的作用范围不同。如果在项目中安装,那么指令只能在该项目内使用,而在其他项目中(未安装leetcode-practice包的情况下)则无法使用指令。而全局安装则允许在任何目录下使用指令。
77+
78+
##### 2.使用
79+
80+
在这里给大家简单介绍一下每日一题的`创建``检查`,还有关键词搜索的使用方式,最为详细具体的指令和参数请参照[KFC及其关键参数说明 ](#3-kfc及其关键参数说明-三种方案通用的参考手册)
81+
82+
###### 2.1 创建题目
83+
84+
在指令作用范围中,执行指令`lc`来进行创建今天的每日一题:
85+
86+
```shell
87+
# 移动到我的工作目录中
88+
cd my-workspace
89+
# 创建每日一题
90+
lc
91+
```
92+
93+
当看到提示:
94+
95+
```shell
96+
MODE: today
97+
题目[299.猜数字游戏]获取成功!
98+
题目文件地址为:/my-workspace/299.bulls-and-cows/question.js
99+
```
100+
101+
你的题目就已经创建完成了!可以在编辑器中愉快的解题了!
102+
103+
###### 2.2 检查题目
104+
105+
当你完成解题代码的编写,可以通过`lk`指令进行简单的检查题解!
106+
107+
```shell
108+
# lk指令和lc指令的模式是对应的,不带参数的时候意为检查今日题目
109+
lk
110+
```
111+
112+
你会得到如下提示信息:
113+
114+
```shell
115+
MODE: today
116+
题目[299.猜数字游戏]检测结果:
117+
┌────────────┬──────────────────────────────────────────┬──────────────────────────────────────────┬────────────┬────────────┐
118+
│ 测试结果 │ 预期结果 │ 执行结果 │ 执行用时 │ 内存占用 │
119+
├────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼────────────┼────────────┤
120+
│ 通过 │ "1A3B""1A3B" │ 0.1361ms │ 2.79 KB │
121+
│ 通过 │ "1A1B""1A1B" │ 0.0623ms │ 2.93 KB │
122+
└────────────┴──────────────────────────────────────────┴──────────────────────────────────────────┴────────────┴────────────┘
123+
点击跳转到题目提交: https://leetcode.cn/problems/bulls-and-cows/
124+
```
125+
126+
你可以看到`测试结果``预期结果``执行结果``执行用时`以及`内存占用`信息。
127+
128+
###### 2.3 搜索题目
129+
130+
关键词搜索是核心指令`lf`的一项基本功能,可以通过关键词的形式获取题目信息,并快速的选择创建。
131+
132+
```shell
133+
# lf指令是一个完全交互式的指令 按其中的提示进行输入操作即可获取自己想要的信息
134+
lf
135+
```
136+
137+
以下演示获取`两数之和`这个题目如何通过关键词搜索创建:
138+
139+
```shell
140+
# 在输入关键词 两数 之后 按下回车 会出现所有和两数相关的题目 按键盘的上下键进行选择 回车进行确认
141+
? 请选择查找的模式? 关键词搜索
142+
? 请输入关键词 两数
143+
? 请选择题目
144+
LCR 025.两数相加 II
145+
2.两数相加
146+
29.两数相除
147+
❯ 1.两数之和
148+
LCR 006.两数之和 II - 输入有序数组
149+
445.两数相加 II
150+
LCR 056.两数之和 IV - 输入二叉搜索树
151+
(Use arrow keys to reveal more choices)
152+
153+
# 确认后的会进行题目创建,返回成功信息
154+
? 请选择查找的模式? 关键词搜索
155+
? 请输入关键词 两数
156+
? 请选择题目 1.两数之和
157+
1
158+
MODE: identity
159+
题目[1.两数之和]获取成功!
160+
题目文件地址为:fill:///my-workspace/1.two-sum/question.js:36
161+
```
162+
163+
> 提示: 在创建完成的时候会输出一个可以点击跳转的文件地址,如果在编辑器的控制台中点击,会直接打开对应的文件的函数开始位置。
164+
165+
#### 方案B.模板项目 Template project
166+
167+
##### 1.创建模板项目
168+
169+
1.`github`中打开我们的模板项目[leetcodePracticeTemplate](https://github.com/EternalHeartTeam/LeetcodePracticeTemplate)
170+
2. `点击`右上角的`Use this template`,选择[`Create a new repository`](https://github.com/new?template_name=LeetcodePracticeTemplate&template_owner=EternalHeartTeam)
171+
3. 就像创建一个正常的仓库一样去填写信息即可。
172+
4. 等待...然后完成,从此你就有了一个自己的`leetcode题解仓库`,并且长期受`leetcode-practice`官方支持!
173+
174+
> 填充创建过程图
175+
176+
##### 2. 使用模板项目
177+
178+
###### 1. 拉取项目,并进行初始化依赖。
179+
180+
e.g. 以我个人的项目为例
181+
182+
```shell
183+
# 这里只是示例,请拉取自己的项目(在你看到这进行尝试的时候,此项目可能已经被清理,正常现象请勿疑惑)
184+
git clone git@github.com:wh131462/my-leetcode-practice.git
185+
# 移动进项目目录
186+
cd my-leetcode-practice
187+
# 初始化
188+
npm i
189+
```
190+
191+
###### 2. 在项目中的使用
192+
193+
在模板项目中使用`leetcode-practice`的方式有两种,一种是`项目内指令`的形式,一种是`npm脚本`的形式。接下来演示创建的过程,其他的指令用法和参数与脚手架一致,请参考[KFC及其关键参数说明](#3-kfc及其关键参数说明-三种方案通用的参考手册)部分。
194+
195+
```shell
196+
# 在项目的根目录下 执行npm run lc 创建今日一题,因为默认配置了 -d src 所以 会在 src 目录下进行创建
197+
npm run lc
198+
# 也可以使用 yarn :任意一种你喜欢的包管理工具
199+
yarn lc
200+
```
201+
202+
你也可以使用指令`lc`来创建,当然,你只能在项目中使用我们的脚本(如果你没有全局安装`leetcode-practice`的话)。
203+
```shell
204+
# 使用lc 会在当前工作目录创建 如果 需要和脚本的表现保持一致(指在src目录下创建),请使用 -d src 参数
205+
lc
206+
```
207+
208+
> 注意:在这里进行一下强调,项目内指令的说法是指指令的作用范围限制是当前的项目目录,也就是说在其他的目录,你尝试使用lc指令会发现不起作用。
209+
>
210+
> 同样的,你也会发现在第一次安装好的时候,在项目内使用lc指令,也是不起作用的,这个时候需要关闭终端(terminal)再打开进行手动的刷新缓存。
211+
>
212+
> npm脚本指在 package.json 中的 scripts 字段下封装的脚本指令。
213+
214+
###### 3. 更新依赖
215+
216+
当你想要进行更新的时候,可以执行封装好的npm指令:`update`,可以帮你安装`最新版本(latest)``leetcode-practice`
217+
218+
```shell
219+
# 使用任意一种包管理工具执行即可
220+
npm run update
221+
# 当然你也可以自己执行指令
222+
npm i --save-dev leetcode-practice
223+
```
224+
225+
#### 方案C.插件 Plugin (待开发)
226+
227+
### 3. KFC及其关键参数说明 (三种方案通用的参考手册)
228+
229+
#### [0].什么是KFC?
230+
231+
`KFC`是一个简便记法,可以快速记忆我们的三个核心指令:`lk`,`lf`,`lc`
232+
233+
| 指令 | 说明 |
234+
|----|--------------------------------------------------------|
235+
| lc | 核心创建指令,支持三种创建模式 ( 每日一题、指定题目、随机题目 ) 进行题目的创建 |
236+
| lk | 核心检查指令,支持三种模式对应的题目检测 |
237+
| lf | 核心查找指令,可以快捷的搜索你想要的题目,支持Hot100,关键词搜索,条件筛选等模式进行搜索题目并支持创建 |
238+
239+
#### [1].lc
240+
241+
| 简单参数 | 完整参数 | 说明 |
242+
|-----------|--------------|------------------|
243+
| 无参数/`-t` | `--today` | 创建今日的每日一题 |
244+
| 题目编号/`-i` | `--identity` | 创建指定编号对应的题目 |
245+
| `-r` | `--random` | 创建当前目录下未出现过的随机题目 |
246+
| `-e` | `--easy` | 交互式创建题目 |
247+
248+
#### [2].lk
249+
250+
| 简单参数 | 完整参数 | 说明 |
251+
|-----------|--------------|--------------------------------------|
252+
| 无参数/`-t` | `--today` | 检查今日的每日一题 |
253+
| 题目编号/`-i` | `--identity` | 检查指定编号对应的题目,会检查当前工作目录下的是否存在指定id对应的题目 |
254+
| `-r` | `--random` | 检查上一次使用随机模式创建的题目 |
255+
| `-e` | `--easy` | 交互式的根据提示去检查对应的题目 |
256+
257+
> 注意: 当你检测的时候需要注意,使用什么模式去检查,请确保你已经执行过对应模式的创建操作。
258+
> 指定编号模式除外,因为会优先检查指定的id是否在当前工作目录存在。
259+
260+
#### [3].lf
261+
262+
| 简单参数 | 完整参数 | 说明 |
263+
|------|------|---------------------------|
264+
| 无参数 || 进入交互式查询,可根据提示搜索或筛选题目并创建题目 |
265+
266+
#### [4].通用参数
267+
268+
| 简单参数 | 完整参数 | 说明 |
269+
|------------------|---------------------------|---------------------------------------------------------------------------|
270+
| `-d <directory>` | `--directory <directory>` | 指定工作目录(是一个当前执行目录的相对地址),会影响创建和检查 |
271+
| `-V` | `--version` | 检查版本号 |
272+
| `-h` | `--help` | 获取帮助信息 |
273+
| `-l [language]` | `--language [language]` | 不指定参数为获取当前的语言环境(默认为javascript),指定参数可以设置语言环境为对应语言(如`-l java`可以指定语言环境为java) |
274+
| `-u` | `--update` | 更新当前脚本或者依赖 |
275+
276+
> 注意:通用参数指三个脚本`lk`,`lf`,`lc`都支持的参数,使用上的语义一般来说是相同的,但是可能有些指令上的行为含义会有所不同(比如`lc`指令指定`-d`参数是指`在指定目录中创建题目`,而`lk`指令指定`-d`参数就是指`在指定目录创建题目`)。
277+
278+
## III.其他信息
279+
280+
### 1. 贡献者们
281+
282+
项目的开发和完善离不开这些贡献者的辛勤付出,在此真诚感谢各位大佬的付出!
283+
284+
<a href="https://github.com/EternalHeartTeam/leetcode-practice/graphs/contributors" target="_blank"><img src="https://raw.githubusercontent.com/EternalHeartTeam/leetcode-practice/svg/images/contributors.png" /></a>
285+
286+
### 2.使用反馈
287+
288+
如果你有使用上的问题需要解惑,或者一些好的建议想要提出,可以加我们的使用反馈群进行反馈!
289+
290+
在群里和开发者面对面的交流,希望我们能产生共鸣,迸发出新的火花!
291+
292+
![反馈群](./resources/images/service-qrcode.png)
293+
294+
### 3.Star趋势图
295+
296+
[![Star History Chart](https://api.star-history.com/svg?repos=EternalHeartTeam/leetcode-practice&type=Date)](https://star-history.com/#EternalHeartTeam/leetcode-practice&Date)

0 commit comments

Comments
 (0)