一言で言うと:"エディタで LeetCode のデイリー問題を練習しよう!"
もし、あなたがエディタで問題を解きたい場合...
もし、毎日の問題を簡単に取得したい場合...
もし、独自の解決策リポジトリを作成したい場合...
そうであれば、leetcode-practiceがあなたのすべての要望を叶えます!
最も自由度が高く、使いやすい方法は、ターミナルで lk
, lf
, lc
の3つの主要コマンドを使って問題を作成し、チェックすることです。
GitHubのフォーク機能を使用して、プロジェクトのコピーを作成し、プロジェクト内の指示に従って問題を作成およびチェックします。
インタラクティブに問題を作成し、チェックするために、插件市場に公開されているleetcode-practice
プラグインを使用することもできます。(主要な2つのエディタ WebStorm
と VS Code
に対応)
必要なパッケージ | バージョン |
---|---|
nodejs | lts |
git | lts |
メモ:nodejs:nodejsのインストールガイド
git:gitダウンロードリンク
npm、yarn、pnpmなどの任意のnpmパッケージ管理ソフトウェアを使用して、グローバルインストールメソッドを使用してインストールできます。
# npmを使用してインストール
npm install -g leetcode-practice
# pnpmを使用してインストール
pnpm install -g leetcode-practice
# yarnを使用してインストール
yarn global install leetcode-practice
- 当社のプロジェクトのURLを開きます:leetcode-practice
フォーク
ボタンをクリックします。
次のようなページが表示されます。そして、リポジトリ名と説明を変更し、「マスターブランチのみをコピーする」を選択してください。
- 作成を確認して待機してください。
- 作成が完了したら、このリポジトリをクローンして、楽しい問題解決を開始できます!
- 当社のリポジトリをローカルにクローンします。
git clone https://github.com/wh131462/leetcode-practice.git
- 当社のデプロイスクリプトを実行します。
# 使用するパッケージマネージャに従ってスクリプトを実行してください
npm run easy-fork
- 完了したら、デプロイが完了します
まだ開発中...
ターミナルに lc
コマンドを入力すると、デフォルトで今日の問題を現在のターミナルの作業ディレクトリに取得します。
lc
# フルコマンド
lc -t
今日の問題の取得の例:
# たとえば、現在の実行ディレクトリがsrcディレクトリの場合
➜ src git:(dev) ✗ lc
MODE:
today
問題[2867.統計ツリー内の有効なパスの数]が取得されました!
問題ファイルの場所は:/home/wh131462/workspace/leetcode-practice/src/2867.count-valid-paths-in-a-tree/index.js
ターミナルに lc
コマンドに対応する問題番号を入力すると、指定された問題を現在の作業ディレクトリに取得します。
lc 1314
# フルコマンド
lc -i 1314
# ダブルクオーテーション(")で囲むと、指定された番号が正確に指定され、特にスペースが含まれる問題番号に特に便利です。
lc -i "LCP 50"
LCP 50
の取得の例:
➜ src git:(dev) ✗ lc "LCP 50"
MODE: identity
問題[LCP 50.宝石の供給]が取得されました!
問題ファイルの場所は:/home/wh131462/workspace/leetcode-practice/src/LCP 50.WHnhjV/index.js
ターミナルに lc
コマンドに -r
パラメータを追加すると、ランダムな問題を取得し、現在のディレクトリに優先的に存在しない問題を取得します。
# フルコマンド
lc -r
ランダムな問題の取得の例:
➜ src git:(dev) ✗ lc -r
MODE: random
問題[14.最長共通接頭辞]が取得されました!
問題ファイルの場所は:/home/wh131462/workspace/leetcode-practice/src/14.longest-common-prefix/index.js
正確な指示を使用して問題を素早く作成するだけでなく、簡単な作成モードを使用して対話形式で作成することもできます。
lc -e
簡易モードで今日の問題を作成する例:
➜ src git:(dev) ✗ lc -e
? 問題の作成モードを選択してください: today
? ディレクトリ[ /home/wh131462/workspace/leetcode-practice/src ]に問題[ 2867.count-valid-paths-in-a-tree ]を作成しますか? Yes
問題[2867.count-valid-paths-in-a-tree]の作成が完了しました!
ファイルの場所は: /home/wh131462/workspace/leetcode-practice/src/2867.count-valid-paths-in-a-tree/index.js
lk
コマンドをターミナルに入力すると、現在の作業ディレクトリで今日の解答をチェックします。
# デフォルトで今日の解答をチェック
lk
# フルコマンド
lk -t
使用例:
# ディレクトリsrcをルートディレクトリとして指定している
workspace/leetcode-practice [dev●] » lk -d src -t
MODE: today
問題[2581.可能なツリールートの数を数える]のチェック結果:
┌─────────┬──────────┬──────────┬───────────┬────────────┬───────────┐
│ (index) │ テスト結果 │ 期待結果 │ 実行結果 │ 実行時間 │ メモリ使用量 │
├─────────┼──────────┼──────────┼───────────┼────────────┼───────────┤
│ 0 │ '不合格' │ '3' │ undefined │ '0.0921ms' │ '2.52 KB' │
│ 1 │ '不合格' │ '5' │ undefined │ '0.0119ms' │ '2.66 KB' │
└─────────┴──────────┴──────────┴───────────┴────────────┴───────────┘
問題の提出ページに移動するにはここをクリックしてください:https://leetcode-cn/problems/count-number-of-possible-root-nodes/
上記のコマンドを使って、lk
をターミナルに入力し、問題番号を入力すると、指定された問題の解答を現在の作業スペースで確認できます。
例えば:
# 指定された問題の解答を確認する
lk 2581
# 完全なコマンド
lk -i 2581
# スペースが含まれる番号はダブルクォーテーションで囲む
lk "LCP 50"
解答を確認する例:
workspace/leetcode-practice [dev●] » lk -d src 2581
MODE: identity
問題[2581.可能な根の数を数える]の検査結果:
┌─────────┬──────────┬──────────┬───────────┬────────────┬───────────┐
│ (index) │ テスト結果 │ 期待結果 │ 実行結果 │ 実行時間 │ メモリ使用量 │
├─────────┼──────────┼──────────┼───────────┼────────────┼───────────┤
│ 0 │ '合格' │ '3' │ '3' │ '0.1668ms' │ '2.52 KB' │
│ 1 │ '合格' │ '5' │ '5' │ '0.0234ms' │ '2.66 KB' │
└─────────┴──────────┴──────────┴───────────┴────────────┴───────────┘
問題の提出にジャンプする:https://leetcode.cn/problems/count-number-of-possible-root-nodes/
lk
をターミナルに入力し、-r
オプションを使用すると、直前にランダムに取得した解答を現在の作業スペースで確認できます。
例えば:
# 完全なコマンド
lk -r
使用例:
workspace/leetcode-practice [dev●] » lk -r
MODE: random
問題[41.最初の不足している正の数]の検査結果:
┌─────────┬──────────┬──────────┬───────────┬────────────┬───────────┐
│ (index) │ テスト結果 │ 期待結果 │ 実行結果 │ 実行時間 │ メモリ使用量 │
├─────────┼──────────┼──────────┼───────────┼────────────┼───────────┤
│ 0 │ '不合格' │ '3' │ undefined │ '0.0896ms' │ '2.42 KB' │
│ 1 │ '不合格' │ '2' │ undefined │ '0.0110ms' │ '2.56 KB' │
│ 2 │ '不合格' │ '1' │ undefined │ '0.0045ms' │ '2.56 KB' │
└─────────┴──────────┴──────────┴───────────┴────────────┴───────────┘
問題の提出にジャンプする:https://leetcode.cn/problems/first-missing-positive/
注意: このコマンドを実行する前に、
lc -r
を実行してランダムな問題を作成してください。
lk
をターミナルに入力し、-e
オプションを使用すると、対話式で問題を確認できます。
例えば:
# 完全なコマンド
lk -e
簡易モードで指定された問題を確認する例:
workspace/leetcode-practice [dev●] » lk -e
? モードを選択してください: identity
? 問題番号を入力してください: 41
? 現在のディレクトリ[ /Users/mac-106/wh131462/workspace/leetcode-practice ]で問題[ 41.first-missing-positive ]を確認しますか? Yes
┌─────────┬──────────┬──────────┬───────────┬────────────┬───────────┐
│ (index) │ テスト結果 │ 期待結果 │ 実行結果 │ 実行時間 │ メモリ使用量 │
├─────────┼──────────┼──────────┼───────────┼────────────┼───────────┤
│ 0 │ '不合格' │ '3' │ undefined │ '0.0969ms' │ '2.42 KB' │
│ 1 │ '不合格' │ '2' │ undefined │ '0.0139ms' │ '2.56 KB' │
│ 2 │ '不合格' │ '1' │ undefined │ '0.0051ms' │ '2.56 KB' │
└─────────┴──────────┴──────────┴───────────┴────────────┴───────────┘
問題の提出にジャンプする:https://leetcode.cn/problems/first-missing-positive/
問題[41.first-missing-positive]の確認が完了しました!
ファイルの場所: /Users/mac-106/wh131462/workspace/leetcode-practice/41.first-missing-positive/index.js
開発中...
-l
を引数なしで使用すると、現在のプログラミング言語の設定を取得できます。また、言語のパラメータを指定することで、現在のCLIの言語環境を指定の言語に設定することもできます。
# このパラメータは lc/lk/lf で同様の動作をします
lc -l
lk -l java
使用例:
# 言語環境の取得
➜ leetcode-practice git:(dev) ✗ lc -l
現在のCLIの言語環境は:javascript
# 言語環境の変更
➜ leetcode-practice git:(dev) ✗ lc -l java
? CLIの言語環境を設定してください (オプションが一致した場合、Enterキーを押して確認してください) java
言語環境が設定されました: java
注意: この環境ではテストケースの実行はできません。
-d
オプ
ションを使用して、作業ディレクトリの相対パスを指定ディレクトリとして使用できます。指定ディレクトリ内での作成または確認操作が行われます。
例えば:
# srcディレクトリを指定して生成
lc -d src -t
# srcディレクトリを指定して確認
lk -d src -i
使用例:
➜ src git:(dev) ✗ lc -d src -t
MODE: today
問題[2867.木の有効なパスの数を数える]を取得しました!
問題のファイルの場所:/home/wh131462/workspace/leetcode-practice/src/src/2867.count-valid-paths-in-a-tree/index.js
注意: 指定したディレクトリが存在しない場合、空のディレクトリが作成されます。
# lcのバージョンを確認する
lc -V
# lkのバージョンを確認する
lk -V
# lfのバージョンを確認する
lf -V
lcのバージョンを確認する例:
workspace/leetcode-practice [dev●] » lc -V
0.0.0
-u
または--update
オプションを使用すると、現在のバージョンが最新バージョンでないかどうかをチェックできます。現在のバージョンが最新バージョンでない場合、更新を行うかどうかをユーザーに確認します。
lk -u
lf -u
lc -u
? 自動検出された環境は[ プロジェクト ]です。もしそうでない場合は選択してください。そうであれば、Enterを押して確認してください。 project
npmリポジトリのバージョン番号の取得を開始します...
npmリポジトリのバージョン番号の取得が完了しました!
githubリポジトリのバージョン番号の取得を開始します...
githubリポジトリのバージョン番号の取得が完了しました!
ローカルバージョン番号の取得を開始します...
ローカルバージョン番号の取得が完了しました!
現在のバージョン:[ 1.0.0 ] npmパッケージの最新バージョン:[ 1.0.1 ] GitHubのバージョン:[ 1.0.1 ]
? [ プロジェクト ]でアップデート可能なバージョン[ 1.0.1 ]が検出されました。アップデートしますか? (Y/n) Yes
更新が完了しました。お楽しみください!
使用する前に、依存関係のインストールを行います。
# 依存関係のインストール
npm install
# または、yarnを使用する(お好みのパッケージ管理ツールを使用できます)
yarn
プロジェクト内のコマンドは、CLIの使用と同じようにパラメータを指定して実行されますが、npm run
などのパッケージ管理ツールを使用してスクリプトを実行する必要があります。
注意: プロジェクト内のスクリプトは、デフォルトで
-d
パラメータが設定されており、プロジェクトのルートディレクトリのsrc
ディレクトリを指すようになっています。そのため、すべてのコマンドはデフォルトでsrc内で実行されます。
パラメータはCLIのlc
部分を参照してください: lc
例:
# yarnで実行
yarn lc 1314
実行結果:
# srcディレクトリ内で生成されます
> yarn lc 1314
yarn run v1.22.19
$ node bin/lc.js -d src 1314
MODE: identity
問題[1314.マトリックスブロック和]を取得しました!
問題のファイルの場所:/Users/mac-106/wh131462/workspace/leetcode-practice/src/1314.matrix-block-sum/index.js
✨ Done in 1.06s.
パラメータはCLIのlk
部分を参照してください: lk
例:
# yarnで実行
yarn lk 1314
実行結果:
# srcディレクトリ内で確認されます
> yarn lk 1314
yarn run v1.22.19
$ node bin/lk.js -d src 1314
MODE: identity
問題[1314.マトリックスブロック和]の検査結果:
┌─────────┬──────────┬──────────────────────────────────────┬───────────┬────────────┬───────────┐
│ (index) │ テスト結果 │ 期待結果 │ 実行結果 │ 実行時間 │ メモリ使用量 │
├────────
─┼──────────┼──────────────────────────────────────┼───────────┼────────────┼───────────┤
│ 0 │ '不合格' │ '[[12,21,16],[27,45,33],[24,39,28]]' │ undefined │ '0.1487ms' │ '2.47 KB' │
│ 1 │ '不合格' │ '[[45,45,45],[45,45,45],[45,45,45]]' │ undefined │ '0.0278ms' │ '2.61 KB' │
└─────────┴──────────┴──────────────────────────────────────┴───────────┴────────────┴───────────┘
問題の提出にジャンプする:https://leetcode.cn/problems/matrix-block-sum/
✨ Done in 1.13s.
パラメータはCLIのlf
部分を参照してください: lf
開発中...
プロジェクトのローカルファイルを更新する特定のスクリプトです。プロジェクトの最新機能を同期するために、srcディレクトリ以外のすべてのディレクトリが更新されます。
注意: 自分で最適化や変更を加えたコードがある場合は、このステップを慎重に行ってください!特殊なケースでのアップグレード方法を参照してください!
開発中...
もし何か問題
があったり、素晴らしい提案
があれば、お気軽にフィードバックグループ
にご参加いただき、フィードバック
を提供してください!私たちは迅速に対処いたします!