Solusi AlgoExpert TS
Repositori ini berisi beberapa solusi untuk tantangan dari AlgoExpert Coding Questions.
Catatan:
Saya belum menyelesaikan semua tantangan, dan saya terus memperbarui repositori ini dengan solusi baru, struktur baru, pengujian baru, dll. Jadi, jika Anda ingin melihat perubahan terbaru, periksa tantangan terakhir yang ditandai selesai di bagian daftar tantangan di bawah.
? Mudah (31) | ? Sedang (73) | ? Keras (58) | ? Sangat Keras (38) |
---|---|---|---|
|
|
|
|
Lagi...
| Lagi...
| Lagi...
| Lagi...
|
(kembali ke atas)
Tes otomatis setelah setiap penerapan - menggunakan Git Hooks dan Jest
Tes otomatis setelah setiap push - menggunakan Github Actions dan Jest
Folder umum - untuk membantu Anda menggunakan kembali kode
Setiap tantangan memiliki foldernya sendiri - untuk membantu Anda mengatur solusi Anda
Setiap tantangan memiliki file pengujiannya sendiri - untuk membantu Anda menjalankan pengujian untuk tantangan tertentu
Setiap tantangan memiliki file uji kasusnya sendiri - untuk membantu Anda mengatur kasus uji Anda
Setiap tantangan memiliki file README.md sendiri - untuk membantu Anda memahami tantangan tersebut
Setiap tantangan memiliki file solusinya sendiri - untuk membantu Anda menulis solusi Anda
Mudah untuk menguji solusi Anda - cukup buat file solusi baru dan perbarui file pengujian dengan solusi Anda
Makefile - untuk membantu Anda menjalankan pengujian, menciptakan tantangan baru, dan menerapkan solusi Anda
Mudah untuk mengkomit solusi Anda - jalankan saja make commit
dan solusi tersebut akan dikomit dengan pesan feat(CHALLENGE_NAME): add solution {SOLUTION_NUMBER}
Mudah untuk membuat tantangan baru - jalankan saja make new
dan itu akan membuat folder, file, dan file README.md untuk Anda, menggunakan templat
Mudah untuk membuat solusi baru - jalankan saja make new-solution
dan itu akan membuat file solusi untuk Anda, menggunakan templat
Mudah untuk menjalankan tes - jalankan saja make test
dan itu akan menjalankan semua tes
Anda dapat menyesuaikan templat - cukup perbarui folder scripts/templates
Mudah untuk di-debug di VSCode - ada file launch.json
dengan konfigurasi debug untuk tab tantangan terbuka saat ini di VSCode
Temukan otomatis tantangan terakhir yang diselesaikan untuk membuat solusi baru saat menjalankan perintah make new-solution
Temukan secara otomatis tantangan berikutnya yang harus diselesaikan untuk membuat tantangan baru saat menjalankan perintah make new
Solusi pembaruan otomatis telah diuji saat menjalankan perintah make new-solution
(kembali ke atas)
Replikasi penetapan fungsi dari solution-0.ts
ke file baru saat menjalankan perintah make new-solution
Setelah membuat tantangan baru, buka semua file baru di VSCode
Perbarui semua tantangan dengan struktur baru setelah menyelesaikan daftar tantangan
Perbarui secara otomatis jumlah tantangan yang diselesaikan di setiap level setelah menyelesaikan setiap tantangan saat menjalankan perintah make commit
Pindahkan file konfigurasi root ke folder .config
Buat folder docs
dengan file README.md
dengan beberapa tips dan trik
(kembali ke atas)
Metode saya untuk mengatasi tantangan tersebut adalah:
Persiapan
Buat folder dan file tantangan (menggunakan perintah make new
)
Langkah pertama
Baca deskripsi tantangan
Gambarlah sebuah solusi
Tulis solusinya dalam TypeScript tanpa melihat petunjuk solusinya
Jalankan pengujian (menggunakan perintah make test-changed
)
Perbaiki solusinya
Ulangi langkah 4 dan 5 sampai semua tes lulus
Evaluasi kompleksitas solusi
Komit solusinya (menggunakan perintah make commit
)
Langkah 2dn
Verifikasi petunjuk solusinya
Bandingkan solusi saya dengan petunjuk solusi
Cobalah untuk meningkatkan solusi saya atau buat yang baru berdasarkan petunjuk solusi (menggunakan perintah make new-solution
)
Ulangi langkah 4 hingga 10 hingga saya puas dengan solusinya
Komit solusinya (menggunakan perintah make commit
)
Langkah ke-3
Tonton video solusinya
Terapkan solusi lain dari video atau perbaiki solusi saya berdasarkan video
Komit solusinya (menggunakan perintah make commit
)
diagram alur LR
MULAI((Persiapan)) --> satu
subgraf satu[Langkah ke-1]
A[Baca] --> B[Gambar]
B --> C[Kode]
C --> D[Tes]
D --> C
D --> saya[Kompleksitas]
I --> R[Berkomitmen]
akhir
subgraf dua[Langkah ke-2]
R --> J[Petunjuk]
J --> K[Bandingkan]
K --> L[Refaktor]
L --> M[Tes]
M --> L
M --> S[Berkomitmen]
akhir
subgraf tiga[Langkah ke-3]
S --> N[Video]
N --> O[Kode]
O --> P[Kode/Refaktor]
P --> Q[Tes]
Q --> P
Q --> T[Berkomitmen]
akhir
satu -> dua
dua --> tiga
tiga --> Akhir(((Akhir)))
Memuat(kembali ke atas)
Node.js
skrip ketikan
Bersenda gurau
(kembali ke atas)
Node.js
(kembali ke atas)
git clone [email protected]:filipe1309/algoexpert-solutions.git
cd algoexpert-solusi
melakukan instalasi
(kembali ke atas)
Saya telah membuat Makefile
untuk membantu Anda menjalankan tes.
Jalankan semua tes:
membuat tes
Jalankan tes tertentu:
lakukan pengujian t=CHALLENGE_NAME
Contoh:
make test t=two-number-sum
Jalankan pengujian yang diubah:
membuat tes-berubah
(kembali ke atas)
Saya juga telah membuat Makefile
dengan beberapa perintah tambahan.
buat [n=CHALLENGE_NAME] baru [l=CHALLENGE_LEVEL] [c=CHALLENGE_CATEGORY]
Contoh:
make new
(isi petunjuknya) ATAUmake new n=two-number-sum l=easy c=arrays
Tingkatan:
easy
,medium
,hard
,very-hard
Ini akan membuat:
sebuah folder ( src/easy/two-number-sum
)
file solution-0.ts
(file tempat Anda akan menulis solusi, Anda dapat membuat lebih banyak jika Anda mau dan memperbarui file pengujian)
file uji solution.spec.ts
file uji kasus cases.ts
file README.md
buat komit [m=COMMIT_MESSAGE]
Contoh:
make commit m="feat: add two number sum solution"
jika Anda tidak meneruskan argumenm
, argumen tersebut akan disertakan dengan pesan tersebut
feat(CHALLENGE_NAME): add solution {SOLUTION_NUMBER}
buat solusi baru [n=CHALLENGE_NAME_SNAKE] [l=CHALLENGE_LEVEL_LOWER]
Contoh:
make new-solution [l=easy] [n=two-number-sum]
ATAUmake new-solution
(isi petunjuknya)
Ini akan membuat file solusi baru solution-{SOLUTION_NUMBER}.ts
dan memperbarui file pengujian.
Jika
solution-0.ts
sudah ada, itu akan membuatsolution-1.ts
dan memperbarui file index.ts dan file pengujian. Dan sebagainya...
Perintah bantuan:
membuat bantuan
(kembali ke atas)
Permintaan tarik dipersilakan. Untuk perubahan besar, silakan buka terbitan terlebih dahulu untuk mendiskusikan apa yang ingin Anda ubah.
Harap pastikan untuk memperbarui pengujian sebagaimana mestinya.
(kembali ke atas)
MIT
(kembali ke atas)
Ahli Algo
Hadiah Tahun Baru - Daftar Pilihan 75 Pertanyaan LeetCode Teratas untuk Menghemat Waktu Anda
Templat ShubcoGen™
Git Hooks tanpa ketergantungan tambahan seperti Husky di proyek Node.js
Skrip Ketik + Lelucon
Menguji Unit dengan Node.js, Jest, dan TypeScript
Penjelasan Notasi O Besar: Kompleksitas Ruang dan Waktu
Menggunakan Pemetaan Jalur tanpa TypeScript
Pemetaan Jalur
Resolusi Modul
Memahami Persamaan Jarak Levenshtein untuk Pemula
Masalah Pernikahan Stabil - Numberphile
Masalah Pernikahan Stabil (sedikit matematika)
(kembali ke atas)
Selesai dengan :hati: oleh Filipe Leuch Bonfim ?
(kembali ke atas)