AlgoExpert TS 解决方案
该存储库包含一些针对 AlgoExpert 编码问题挑战的解决方案。
笔记:
我还没有完成所有挑战,并且我不断用新的解决方案、新结构、新测试等更新此存储库。因此,如果您想查看最新的更改,请检查标记为已完成的最后一个挑战在下面的挑战列表部分。
?简单 (31) | ?中号 (73) | ?硬 (58) | ?非常难 (38) |
---|---|---|---|
|
|
|
|
更多的...
| 更多的...
| 更多的...
| 更多的...
|
(回到顶部)
每次提交后自动测试- 使用 Git Hooks 和 Jest
每次推送后自动测试- 使用 Github Actions 和 Jest
Common 文件夹- 帮助您重用代码
每个挑战都有自己的文件夹- 帮助您组织解决方案
每个挑战都有自己的测试文件- 帮助您针对特定挑战运行测试
每个挑战都有自己的案例测试文件- 帮助您组织测试案例
每个挑战都有自己的 README.md 文件- 帮助您理解挑战
每个挑战都有自己的解决方案文件- 帮助您编写解决方案
轻松测试您的解决方案- 只需创建一个新的解决方案文件并使用您的解决方案更新测试文件
Makefile - 帮助您运行测试、创造新的挑战并提交您的解决方案
轻松提交您的解决方案- 只需运行make commit
,它就会提交消息feat(CHALLENGE_NAME): add solution {SOLUTION_NUMBER}
轻松创建新挑战- 只需运行make new
,它将使用模板为您创建文件夹、文件和 README.md 文件
轻松创建新解决方案- 只需运行make new-solution
,它将使用模板为您创建解决方案文件
易于运行测试- 只需运行make test
,它将运行所有测试
您可以自定义模板- 只需更新scripts/templates
夹
易于在 VSCode 中调试- 有一个launch.json
文件,其中包含 VSCode 中当前打开的挑战选项卡的调试配置
执行make new-solution
命令时自动发现完成的最后一个挑战以创建新解决方案
执行make new
命令时自动发现下一个要完成的挑战以创建新挑战
执行make new-solution
命令时自动更新解决方案经过测试
(回到顶部)
执行make new-solution
命令时,将solution-0.ts
中的函数分配复制到新文件
创建新挑战后,在 VSCode 中打开所有新文件
完成挑战列表后,用新结构更新所有挑战
执行make commit
命令时完成每个挑战后自动更新每个级别完成的挑战数量
将根配置文件移动到.config
文件夹
使用README.md
文件创建一个docs
文件夹,其中包含一些提示和技巧
(回到顶部)
我的方法解决挑战的方法是:
准备
创建挑战文件夹和文件(使用make new
命令)
第一步
阅读挑战说明
画出解决方案
用 TypeScript编写解决方案,而不查看解决方案提示
运行测试(使用make test-changed
命令)
重构解决方案
重复步骤 4 和 5,直到所有测试通过
评估解决方案的复杂性
提交解决方案(使用make commit
命令)
2dn 步
验证解决方案提示
将我的解决方案与解决方案提示进行比较
尝试改进我的解决方案或根据解决方案提示创建一个新的解决方案(使用make new-solution
命令)
重复步骤 4 到 10,直到我对解决方案感到满意为止
提交解决方案(使用make commit
命令)
第三步
观看解决方案视频
实施视频中的其他解决方案或根据视频重构我的解决方案
提交解决方案(使用make commit
命令)
流程图LR
开始((准备)) --> 一
子图一[第一步]
A[读] --> B[画]
B --> C[代码]
C --> D[测试]
D-->C
D --> I[复杂性]
我 --> R[提交]
结尾
子图二[第二步]
R --> J[提示]
J --> K[比较]
K --> L[重构]
L --> M[测试]
中号--> 中号
M --> S[提交]
结尾
子图三[第三步]
S --> N[视频]
N --> O[代码]
O --> P[代码/重构]
P --> Q[测试]
问--> P
Q --> T[提交]
结尾
一 -.-> 二
两个 -.-> 三
三 --> 结束(((结束)))
加载中(回到顶部)
Node.js
打字稿
笑话
(回到顶部)
Node.js
(回到顶部)
git 克隆 [email protected]:filipe1309/algoexpert-solutions.git
cd algoexpert-解决方案
进行安装
(回到顶部)
我创建了一个Makefile
来帮助您运行测试。
运行所有测试:
进行测试
运行特定测试:
进行测试 t=CHALLENGE_NAME
示例:
make test t=two-number-sum
运行更改的测试:
进行测试更改
(回到顶部)
我还创建了一个包含一些额外命令的Makefile
。
新建 [n=CHALLENGE_NAME] [l=CHALLENGE_LEVEL] [c=CHALLENGE_CATEGORY]
例子:
make new
(填写提示)或make new n=two-number-sum l=easy c=arrays
级别:
easy
、medium
、hard
、very-hard
这将创建:
一个文件夹( src/easy/two-number-sum
)
solution-0.ts
文件(您将在其中编写解决方案的文件,如果需要,可以创建更多文件并更新测试文件)
测试文件solution.spec.ts
案例测试文件cases.ts
README.md
文件
提交 [m=COMMIT_MESSAGE]
示例:
make commit m="feat: add two number sum solution"
如果你不传递m
参数,它将提交消息feat(CHALLENGE_NAME): add solution {SOLUTION_NUMBER}
制定新解决方案 [n=CHALLENGE_NAME_SNAKE] [l=CHALLENGE_LEVEL_LOWER]
示例:
make new-solution [l=easy] [n=two-number-sum]
或make new-solution
(填写提示)
这将创建一个新的解决方案文件solution-{SOLUTION_NUMBER}.ts
并更新测试文件。
如果
solution-0.ts
已经存在,它将创建solution-1.ts
并更新index.ts文件和测试文件。等等...
帮助命令:
提供帮助
(回到顶部)
欢迎请求请求。对于重大更改,请先打开一个问题来讨论您想要更改的内容。
请确保适当更新测试。
(回到顶部)
麻省理工学院
(回到顶部)
算法专家
新年礼物 - 精选 75 个 LeetCode 问题列表,节省您的时间
ShubcoGen 模板™
Git Hooks 无需像 Node.js 项目中的 Husky 那样额外的依赖项
TypeScript + 玩笑
Testes Unitários com Node.js、Jest 和 TypeScript
什么是大 O 表示法解释:空间和时间复杂性
使用 TypeScript 进行路径映射
路径映射
模块分辨率
初学者了解编辑距离方程
稳定的婚姻问题 - Numberphile
稳定婚姻问题(数学部分)
(回到顶部)
Filipe Leuch Bonfim 的 :heart: 完成了吗?
(回到顶部)