アルゴエキスパート TS ソリューション
このリポジトリには、AlgoExpert のコーディングに関する質問からの課題に対する解決策がいくつか含まれています。
注記:
まだすべてのチャレンジを完了したわけではありません。新しいソリューション、新しい構造、新しいテストなどでこのリポジトリを常に更新しています。そのため、最新の変更を確認したい場合は、完了としてマークされている最後のチャレンジを確認してください。以下のチャレンジリストセクションをご覧ください。
?簡単 (31) | ?中 (73) | ?ハード (58) | ?ベリーハード (38) |
---|---|---|---|
|
|
|
|
もっと...
| もっと...
| もっと...
| もっと...
|
(トップに戻る)
各コミット後の自動テスト- Git フックと Jest を使用
各プッシュ後の自動テスト- Github Actions と Jest を使用
共通フォルダー- コードの再利用に役立ちます
各課題には独自のフォルダーがあり、ソリューションを整理するのに役立ちます
各チャレンジには独自のテスト ファイルがあり、特定のチャレンジのテストを実行するのに役立ちます。
各チャレンジには独自のケース テスト ファイルがあり、テスト ケースを整理するのに役立ちます
各チャレンジには独自の README.md ファイルがあり、チャレンジを理解するのに役立ちます。
各課題には独自のソリューション ファイルがあり、ソリューションの作成に役立ちます
ソリューションのテストが簡単- 新しいソリューション ファイルを作成し、テスト ファイルをソリューションで更新するだけです
Makefile - テストの実行、新しい課題の作成、ソリューションのコミットを支援します。
ソリューションをコミットするのは簡単です- make commit
実行するだけで、 feat(CHALLENGE_NAME): add solution {SOLUTION_NUMBER}
メッセージが表示されてコミットされます。
新しいチャレンジの作成は簡単- make new
を実行するだけで、テンプレートを使用してフォルダー、ファイル、README.md ファイルが作成されます。
新しいソリューションの作成が簡単- make new-solution
を実行するだけで、テンプレートを使用してソリューション ファイルが作成されます。
テストの実行は簡単- make test
実行するだけですべてのテストが実行されます。
テンプレートはカスタマイズできます。scripts scripts/templates
フォルダーを更新するだけです。
VSCode でのデバッグが簡単- VSCode で現在開いているチャレンジ タブのデバッグ構成を含むlaunch.json
ファイルがあります。
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
コマンドを使用)
第3ステップ
解決策のビデオを見る
ビデオから他のソリューションを実装するか、ビデオに基づいてソリューションをリファクタリングします
ソリューションをコミットします( make commit
コマンドを使用)
フローチャート LR
START((準備)) --> 1
サブグラフ 1[第 1 ステップ]
A[読み取り] --> B[描画]
B --> C[コード]
C --> D[テスト]
D --> C
D --> I[複雑さ]
I --> R[コミット]
終わり
サブグラフ 2[第 2 ステップ]
R --> J[ヒント]
J --> K[比較]
K --> L[リファクタリング]
L --> M[テスト]
M --> L
M --> S[コミット]
終わり
サブグラフ 3[第 3 ステップ]
S --> N[ビデオ]
N --> O[コード]
O --> P[コード/リファクタリング]
P --> Q[テスト]
Q --> P
Q --> T[コミット]
終わり
1 つ -> 2 つ
2 つ -> 3 つ
3 --> 終了(((終了)))
読み込み中(トップに戻る)
Node.js
TypeScript
冗談
(トップに戻る)
Node.js
(トップに戻る)
git clone [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]
ORmake new-solution
(プロンプトに入力)
これにより、新しいソリューション ファイルsolution-{SOLUTION_NUMBER}.ts
が作成され、テスト ファイルが更新されます。
solution-0.ts
がすでに存在する場合は、solution-1.ts
が作成され、index.ts ファイルとテスト ファイルが更新されます。等々...
ヘルプコマンド:
助けてあげる
(トップに戻る)
プルリクエストは大歓迎です。大きな変更の場合は、まず問題を開いて、変更したい内容について話し合ってください。
必要に応じてテストを更新してください。
(トップに戻る)
マサチューセッツ工科大学
(トップに戻る)
アルゴエキスパート
新年の贈り物 - 時間を節約するための LeetCode の質問トップ 75 の厳選リスト
ShubcoGen テンプレート™
Node.js プロジェクトの Husky のような追加の依存関係のない Git フック
TypeScript + Jest
Node.js、Jest、TypeScript のテスト ユニット
Big O 記法とは何かを説明: 空間と時間の複雑さ
TypeScript を使用しない Utilizando パス マッピング
パスのマッピング
モジュールの解像度
初心者向けのレーベンシュタイン距離方程式の理解
安定した結婚の問題 - Numberphile
安定した結婚問題 (数学のビット)
(トップに戻る)
Filipe Leuch Bonfim の :heart: は終了しましたか?
(トップに戻る)