平均1日1問以上目安.
- エッジケースを考える. 入力が空だったら?不正な文字が入っていたら?など
- 自然言語で説明できるようにする
- 変数名は自然に伝わるか, 可読性とパフォーマンスについてバランスがいいか
- 制約条件によってどの解法を選択したらいいか
- フォローアップを考える
- 変数名はわかりやすいか?意図が伝わるか
- 読む人のワーキングメモリに負荷がかかりすぎないか?
- 同じ処理をベタ書きで繰り返していないか?
- 適切なフォーマット(空欄, インデント)
git checkout -b problem-123
# 問題を解く(コードを書く)
# ...
git add .
git commit -m "Solve problem 123"./create-pr.sh "現在の問題URL" ["次の問題URL(省略可)"]例:
# URLのみ指定(問題名は自動抽出される)
./create-pr.sh "https://leetcode.com/problems/two-sum/description/"
# 次に解く問題も指定
./create-pr.sh "https://leetcode.com/problems/two-sum/description/" "https://leetcode.com/problems/add-two-numbers/description/"自動で行われること:
- URLから問題名を自動抽出(ハイフン→スペース、各単語の先頭を大文字化)
- 例:
two-sum→Two Sum
- 例:
- PRテンプレートに問題名とURLを記入
- 次に解く問題があれば、それも記入
- 変更をコミット&プッシュ
- GitHub CLIでPRを作成
PRが作成されると、GitHub Actionsが自動でPRのコメント欄に以下のようなメッセージを投稿します:
お疲れ様です。
Two Sumに取り組みました。
お手隙の際にレビューをお願いいたします。
問題: https://leetcode.com/problems/two-sum/description/
PR: https://github.com/username/repo/pull/123
言語: Python3
# Ubuntu/Debian
sudo apt install gh
# 認証
gh auth loginchmod +x create-pr.sh