Skip to content

Latest commit

 

History

History
509 lines (358 loc) · 21.8 KB

README_JP.md

File metadata and controls

509 lines (358 loc) · 21.8 KB

Leetcode practice

中文文件|英文文件|日本語ファイル|韓国語ファイル

はじめに

一言で言うと:"エディタで LeetCode のデイリー問題を練習しよう!"

もし、あなたがエディタで問題を解きたい場合...

もし、毎日の問題を簡単に取得したい場合...

もし、独自の解決策リポジトリを作成したい場合...

そうであれば、leetcode-practiceがあなたのすべての要望を叶えます!

プレビュー

CLI-lc

どのように使うか?(3つの選択肢)

選択肢 A: CLI(推奨)

最も自由度が高く、使いやすい方法は、ターミナルで lk, lf, lc の3つの主要コマンドを使って問題を作成し、チェックすることです。

インストール · 使用

選択肢 B: フォーク(サポートされています)

GitHubのフォーク機能を使用して、プロジェクトのコピーを作成し、プロジェクト内の指示に従って問題を作成およびチェックします。

インストール · 使用

選択肢 C: プラグイン(サポートされています)

インタラクティブに問題を作成し、チェックするために、插件市場に公開されているleetcode-practiceプラグインを使用することもできます。(主要な2つのエディタ WebStormVS Code に対応)

インストール · 使用

準備条件

必要なパッケージ バージョン
nodejs lts
git lts

メモ:nodejs:nodejsのインストールガイド

git:gitダウンロードリンク

インストール

一.全局インストールスクリプト (オプション A)

npm、yarn、pnpmなどの任意のnpmパッケージ管理ソフトウェアを使用して、グローバルインストールメソッドを使用してインストールできます。

# npmを使用してインストール
npm install -g leetcode-practice
# pnpmを使用してインストール
pnpm install -g leetcode-practice
# yarnを使用してインストール
yarn global install leetcode-practice

二.フォークを使用して独自のleetcode-practiceリポジトリのコピーを作成する (オプション B)

標準的な方法

  1. 当社のプロジェクトのURLを開きます:leetcode-practice

leetcode-practice-github

  1. フォーク ボタンをクリックします。

次のようなページが表示されます。そして、リポジトリ名と説明を変更し、「マスターブランチのみをコピーする」を選択してください。 github-fork

  1. 作成を確認して待機してください。

github-forking

  1. 作成が完了したら、このリポジトリをクローンして、楽しい問題解決を開始できます!

github-forked

簡単な方法

  1. 当社のリポジトリをローカルにクローンします。
git clone https://github.com/wh131462/leetcode-practice.git
  1. 当社のデプロイスクリプトを実行します。
# 使用するパッケージマネージャに従ってスクリプトを実行してください
npm run easy-fork
  1. 完了したら、デプロイが完了します

三.エディタのプラグイン市場にプラグインをインストールする (オプション C)

まだ開発中...

使い方

CLIの使用

1.問題の作成 - lc

[1]. 今日の問題の取得 - [-t/--today]

ターミナルに 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
[2]. 特定の問題の取得 - [-i/--identity]

ターミナルに 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
[3]. ランダムな問題の取得 - [-r/--random]

ターミナルに lc コマンドに -r パラメータを追加すると、ランダムな問題を取得し、現在のディレクトリに優先的に存在しない問題を取得します。

# フルコマンド
lc -r

ランダムな問題の取得の例:

➜  src git:(dev) ✗ lc -r
MODE: random
問題[14.最長共通接頭辞]が取得されました!
問題ファイルの場所は:/home/wh131462/workspace/leetcode-practice/src/14.longest-common-prefix/index.js
[4]. 簡易作成モード(対話形式で作成) - [-e/--easy]

正確な指示を使用して問題を素早く作成するだけでなく、簡単な作成モードを使用して対話形式で作成することもできます。

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

2.問題のチェック - lk

[1]. 今日の解答をチェックする [-t/--today]

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/
[2]. 特定の解答をチェックする [-i/--identity + <identity>]

上記のコマンドを使って、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/

[3]. ランダムな解答を確認する [-r/--random]

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を実行してランダムな問題を作成してください。

[4]. 簡易モード(対話式確認) [-e/--easy]

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

3.問題検索 - lf

開発中...

4.一般的なオプション

[1]. 現在のプログラミング言語の取得または指定 - [-l/-language [language]]

-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

注意: この環境ではテストケースの実行はできません。

[2]. ディレクトリを指定する - [-d/-directory]

-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

注意: 指定したディレクトリが存在しない場合、空のディレクトリが作成されます。

[3]. バージョンを確認する [-V/--version]
# lcのバージョンを確認する
lc -V
# lkのバージョンを確認する
lk -V
# lfのバージョンを確認する
lf -V

lcのバージョンを確認する例:

workspace/leetcode-practice [dev●] » lc -V
0.0.0
[4]. 更新をチェックする [-u/--update]

-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
更新が完了しました。お楽しみください!

プロジェクトのフォークの使用

[0]. 依存関係のインストール

使用する前に、依存関係のインストールを行います。

# 依存関係のインストール
npm install
# または、yarnを使用する(お好みのパッケージ管理ツールを使用できます)
yarn

プロジェクト内のコマンドは、CLIの使用と同じようにパラメータを指定して実行されますが、npm runなどのパッケージ管理ツールを使用してスクリプトを実行する必要があります。

注意: プロジェクト内のスクリプトは、デフォルトで-dパラメータが設定されており、プロジェクトのルートディレクトリのsrcディレクトリを指すようになっています。そのため、すべてのコマンドはデフォルトでsrc内で実行されます。

[1]. 解答を作成する [lc]

パラメータは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.
[2]. 解答を確認する [lk]

パラメータは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.
[3]. 解答を検索する [lf]

パラメータはCLIのlf部分を参照してください: lf

開発中...

[4]. アップデート [update]

プロジェクトのローカルファイルを更新する特定のスクリプトです。プロジェクトの最新機能を同期するために、srcディレクトリ以外のすべてのディレクトリが更新されます。

注意: 自分で最適化や変更を加えたコードがある場合は、このステップを慎重に行ってください!特殊なケースでのアップグレード方法を参照してください!

プラグインの使用

開発中...

貢献者

EternalHeart SmartTeddy Hedwig-Fang

フィードバック

もし何か問題があったり、素晴らしい提案があれば、お気軽にフィードバックグループにご参加いただき、フィードバックを提供してください!私たちは迅速に対処いたします!

フィードバック