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: 完成了嗎?
(回到頂部)