Repo ini berisi solusi C++ dan Python untuk Cracking the Coding Interview 6th Edition karya Gayle Laakmann McDowell. Memang benar, ada repositori GitHub lain yang memiliki solusi untuk buku ini. Tapi bagaimana Anda tahu bahwa kode mereka benar? Jika belum teruji, maka Anda tidak akan mencobanya!
Dalam proyek ini, setiap solusi C++ memiliki pengujian unit menggunakan kerangka kerja C++ Catch, dan setiap solusi Python memiliki pengujian unit menggunakan kerangka kerja unittest Python. Kami menerapkan kebenaran pengujian secara otomatis menggunakan server integrasi berkelanjutan untuk memastikan bahwa solusi dibuat dari kode hidup yang dieksekusi dan diuji pada setiap penerapan. Sepengetahuan saya, ini adalah satu-satunya tempat penyimpanan solusi di Internet dengan tingkat ketelitian pengujian seperti ini: >90% cakupan pengujian otomatis berarti Anda dapat mereferensikan dan menyumbangkan solusi dengan percaya diri.
9 / 9
selesai.8 / 8
selesai.4 / 6
selesai.11 / 12
selesai.7 / 8
selesai.0 / 10
selesai.0 / 12
selesai.8 / 14
selesai.0 / 8
selesai.10 / 11
selesai.0 / 6
selesai.10 / 11
0 / 7
selesai.0 / 4
selesai.11 / 26
selesai.1 / 26
selesai.2
selesai. C++ Total: 81
solusi selesai.
9 / 9
selesai.8 / 8
selesai.6 / 6
selesai.11 / 12
selesai.7 / 8
selesai.0 / 10
selesai.0 / 12
selesai.11 / 14
selesai.0 / 8
selesai.1 / 11
selesai.0 / 6
selesai.0 / 7
selesai.2 / 26
selesai.3 / 26
selesai. Total Python: 58
solusi selesai.
139
solusi unik selesai.Penggunaan Mac memerlukan instalasi manajer paket Homebrew dan Pip yang dilakukan untuk Anda di Makefile:
git clone https://github.com/alexhagiopol/cracking-the-coding-interview.git ctci
cd ctci
make configure-mac
git clone https://github.com/alexhagiopol/cracking-the-coding-interview.git
cd ctci
make configure-ubuntu
Untuk pengguna Windows, saya merekomendasikan pengembangan proyek ini menggunakan fitur Subsistem Windows untuk Linux (WSL) pada Windows 10 dan kemudian mengikuti instruksi pembuatan dan pengujian Ubuntu di dalam WSL. Rekomendasi ini disebabkan oleh penggunaan sistem build dan eksekusi berbasis Ubuntu, CMake, dan makefile di server yang secara otomatis menguji perubahan pada kode. Untuk informasi lebih lanjut tentang pengembangan Windows, lihat bagian Appendix
di akhir halaman ini.
Pengujian adalah bagian terpenting dari proyek ini: hanya pengujian unit yang menentukan masalah yang sedang dipecahkan. Di direktori root, jalankan perintah berikut untuk menjalankan semua pengujian dengan Python dan C++:
make test
make test
adalah perintah yang paling sering saya gunakan saat mengembangkan proyek ini. Alur kerja saya berikut:
make test
untuk melihat di mana proyek gagal memenuhi pengujian unit.make test
berhasil.Ini akan menunjukkan dengan tepat baris mana yang tidak tercakup dalam pengujian di setiap file sumber Python:
pip install coverage
make test_coverage
Tujuan dari proyek ini adalah untuk menulis solusi Python dan C++ yang teruji untuk setiap masalah dalam buku teks edisi ke-6. Saya pasti membutuhkan bantuan, jadi PR dipersilakan. Ada banyak hal yang harus dilakukan karena setiap solusi memerlukan kumpulan data dan infrastruktur kecilnya sendiri agar dapat diuji. Berikut beberapa cara yang dapat Anda bantu:
Jika Anda memiliki kontribusi, silakan buat PR ke cabang master
. Jangan ragu untuk mengirimi saya pesan untuk klarifikasi tentang salah satu item di atas.
Di mesin Windows saya sendiri, saya mengembangkan menggunakan CLion yang berjalan secara asli di Windows dan menguji kode menggunakan make test
di jendela terminal WSL. Bagi pengguna yang tidak ingin menggunakan WSL, saya telah mengembangkan metodologi build dan test di bawah ini:
Proyek ini dapat dikembangkan murni di Windows tanpa WSL dengan menggunakan Visual Studio 2017. Pertama, klon kodenya:
git clone https://github.com/alexhagiopol/cracking-the-coding-interview.git
cd ctci
git submodule update --init
Kemudian, instal Python3 dan numpy menggunakan metode pilihan Anda. Saya lebih suka menginstal Python3 dan pip3 dari situs resmi kemudian menginstal numpy melalui pip:
pip install numpy
Kemudian buka proyek di Visual Studio 2017 yang memiliki dukungan CMake. Saya telah menemukan bahwa alur kerja terbaik adalah menggunakan Visual Studio untuk mengedit kode dan menggunakan fungsi debugging. Sebelum membuat kode, Anda harus mengikuti petunjuk berikut untuk memberi tahu Visual Studio agar mengunduh PDB yang diperlukan. Selain itu, artikel ini menjelaskan dukungan Visual Studio CMake secara lebih rinci jika Anda tertarik. File CMakeSettings.json di direktori proyek akar menetapkan lokasi folder build Visual Studio berada di dalam folder akar proyek.
Menjalankan tes dan melihat hasilnya paling baik dilakukan dari jendela PowerShell karena VisualStudio dalam mode CMake tidak mengizinkan output konsol dari file tests.exe
dan tests.py
tetap terlihat bahkan ketika menekan CTRL + F5 seperti yang dijelaskan dalam posting ini yang berlaku untuk penggunaan Visual Studio "normal". Saya memantau situasinya: Visual Studio, dan ketika saya menemukan solusi yang lebih baik, saya akan menerapkannya atau mempostingnya. Jika Anda mengetahui sesuatu yang lebih baik, silakan hubungi saya.
Sementara itu, dari direktori root proyek, Anda dapat menjalankan pengujian Python menggunakan ...
python tests.py
... dan Anda dapat menjalankan tes C++ menggunakan ...
.buildx64-Debugtests.exe