Bẻ khóa cuộc phỏng vấn mã hóa Python pdf GitHub

Bản repo này chứa các giải pháp C++ và Python cho Phiên bản thứ 6 của Gayle Laakmann McDowell's Cracking the Coding Interview. Phải thừa nhận rằng có các kho lưu trữ GitHub khác có giải pháp cho cuốn sách này. Nhưng làm thế nào để bạn biết rằng mã của họ thực sự chính xác?

Trong dự án này, mọi giải pháp C++ đều có các bài kiểm tra đơn vị bằng cách sử dụng khung C++ Catch và mọi giải pháp Python đều có các bài kiểm tra đơn vị bằng cách sử dụng khung unittest của Python. Chúng tôi tự động thực thi tính chính xác của kiểm tra bằng cách sử dụng các máy chủ tích hợp liên tục để đảm bảo rằng các giải pháp được tạo ra từ mã sống được thực thi và kiểm tra trên mỗi lần xác nhận. Theo hiểu biết của tôi, đây là kho lưu trữ giải pháp duy nhất trên Internet với mức độ kiểm tra nghiêm ngặt này. >90% phạm vi kiểm tra tự động có nghĩa là bạn có thể tự tin tham khảo và đóng góp các giải pháp

Mục lục

Giải pháp C++

  1. Bài kiểm tra đơn vị C++
  2. Chương 1 - Mảng và Chuỗi. 9 / 9 hoàn thành
  3. Chương 2 - Danh sách liên kết. 8 / 8 hoàn thành
  4. Chương 3 - Ngăn xếp và hàng đợi.
    git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
    cd ctci
    make configure-ubuntu
    
    0 hoàn thành
  5. Chương 4 - Cây và Đồ thị.
    git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
    cd ctci
    make configure-ubuntu
    
    1 hoàn thành
  6. Chương 5 - Thao tác bit.
    git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
    cd ctci
    make configure-ubuntu
    
    2 hoàn thành
  7. Chương 6 - Toán học và Logic.
    git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
    cd ctci
    make configure-ubuntu
    
    3 hoàn thành
  8. Chương 7 - Thiết kế hướng đối tượng.
    git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
    cd ctci
    make configure-ubuntu
    
    4 hoàn thành
  9. Chương 8 - Lập trình đệ quy và động.
    git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
    cd ctci
    make configure-ubuntu
    
    5 hoàn thành
  10. Chương 9 - Thiết kế hệ thống và khả năng mở rộng.
    git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
    cd ctci
    make configure-ubuntu
    
    6 hoàn thành
  11. Chương 10 - Sắp xếp và tìm kiếm.
    git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
    cd ctci
    make configure-ubuntu
    
    7 hoàn thành
  12. Chương 11 - Thử nghiệm.
    git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
    cd ctci
    make configure-ubuntu
    
    8 hoàn thành
  13. Chương 12 - C và C++.
    git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
    cd ctci
    make configure-ubuntu
    
    7
  14. Chương 13 - Java. không áp dụng
  15. Chương 14 - Cơ sở dữ liệu.
    make test
    
    0 hoàn thành
  16. Chương 15 - Chỉ và Khóa.
    make test
    
    1 hoàn thành
  17. Chương 16 - Vừa phải.
    make test
    
    2 hoàn thành
  18. Chương 17 - Khó Khăn.
    make test
    
    3 hoàn thành
  19. Bài tập linh tinh.
    make test
    
    4 hoàn thành

Tổng cộng C++.

make test
5 giải pháp hoàn thành

Giải pháp Python

  1. Bài kiểm tra đơn vị Python
  2. Chương 1 - Mảng và Chuỗi. 9 / 9 hoàn thành
  3. Chương 2 - Danh sách liên kết. 8 / 8 hoàn thành
  4. Chương 3 - Ngăn xếp và hàng đợi.
    make test
    
    8 hoàn thành
  5. Chương 4 - Cây và Đồ thị.
    git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
    cd ctci
    make configure-ubuntu
    
    1 hoàn thành
  6. Chương 5 - Thao tác bit.
    git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
    cd ctci
    make configure-ubuntu
    
    2 hoàn thành
  7. Chương 6 - Toán học và Logic.
    git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
    cd ctci
    make configure-ubuntu
    
    3 hoàn thành
  8. Chương 7 - Thiết kế hướng đối tượng.
    git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
    cd ctci
    make configure-ubuntu
    
    4 hoàn thành
  9. Chương 8 - Lập trình đệ quy và động.
    pip install coverage
    make test_coverage
    
    3 hoàn thành
  10. Chương 9 - Thiết kế hệ thống và khả năng mở rộng.
    git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
    cd ctci
    make configure-ubuntu
    
    6 hoàn thành
  11. Chương 10 - Sắp xếp và tìm kiếm.
    pip install coverage
    make test_coverage
    
    5 hoàn thành
  12. Chương 11 - Thử nghiệm.
    git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
    cd ctci
    make configure-ubuntu
    
    8 hoàn thành
  13. Chương 12 - C và C++. không áp dụng
  14. Chương 13 - Java. không áp dụng
  15. Chương 14 - Cơ sở dữ liệu.
    make test
    
    0 hoàn thành
  16. Chương 15 - Chỉ và Khóa. không áp dụng
  17. Chương 16 - Vừa phải.
    pip install coverage
    make test_coverage
    
    8 hoàn thành
  18. Chương 17 - Khó Khăn.
    pip install coverage
    make test_coverage
    
    9 hoàn thành

Tổng Python.

git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
cd ctci
git submodule update --init
0 giải pháp hoàn thành

Tổng cộng.
git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
cd ctci
git submodule update --init
Hoàn thành 1 giải pháp độc đáo

Xây dựng

Mac

Việc sử dụng máy Mac yêu cầu cài đặt trình quản lý gói Homebrew và Pip được thực hiện cho bạn trong Makefile

git clone //github.com/alexhagiopol/cracking-the-coding-interview.git ctci
cd ctci
make configure-mac

Ubuntu

git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
cd ctci
make configure-ubuntu

các cửa sổ

Đối với người dùng Windows, tôi khuyên bạn nên phát triển dự án này bằng tính năng Hệ thống con Windows cho Linux [WSL] của Windows 10, sau đó làm theo hướng dẫn xây dựng và thử nghiệm Ubuntu bên trong WSL. Đề xuất này là do việc sử dụng các hệ thống thực thi và xây dựng dựa trên Ubuntu, CMake và makefile trên các máy chủ tự động kiểm tra các thay đổi đối với mã. Để biết thêm về quá trình phát triển Windows, hãy xem phần

git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
cd ctci
git submodule update --init
2 ở cuối trang này

thử nghiệm

Thử nghiệm là phần quan trọng nhất của dự án này. chỉ các bài kiểm tra đơn vị xác định vấn đề đang được giải quyết. Trong thư mục gốc, hãy thực hiện thao tác sau để chạy tất cả các bài kiểm tra bằng Python và C++

make test

git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
cd ctci
git submodule update --init
3 là lệnh tôi sử dụng nhiều nhất khi phát triển dự án này. quy trình làm việc của tôi sau

  1. Tôi đọc một vấn đề và mã hóa định nghĩa vấn đề bằng cách thực hiện các bài kiểm tra đơn vị của nó
  2. Tôi thực hiện
    git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
    cd ctci
    git submodule update --init
    
    3 để xem nơi dự án không đáp ứng các bài kiểm tra đơn vị
  3. Tôi thêm vào việc triển khai giải pháp cho đến khi
    git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
    cd ctci
    git submodule update --init
    
    3 thành công

Không bắt buộc. Tạo báo cáo % phạm vi kiểm tra cục bộ [chỉ hỗ trợ Python]

Điều này sẽ hiển thị chính xác những dòng nào không được kiểm tra trong mỗi tệp nguồn Python

pip install coverage
make test_coverage

Đóng góp

Mục tiêu của dự án này là viết một giải pháp Python và C++ đã được thử nghiệm cho mọi vấn đề trong ấn bản thứ 6 của sách giáo khoa. Tôi chắc chắn cần sự giúp đỡ, vì vậy PR được chào đón. Còn nhiều việc phải làm vì mỗi giải pháp cần cơ sở hạ tầng và tập dữ liệu nhỏ của riêng mình để được kiểm tra. Dưới đây là một số cách bạn có thể giúp

  1. Sửa lỗi🐛
  2. Giải quyết hoặc cải thiện các giải pháp cho các vấn đề bằng một trong hai ngôn ngữ [xem tiến độ hoàn thành trong mục lục]
  3. Thêm nhiều bài kiểm tra đơn vị để tăng phạm vi kiểm tra%
  4. Triển khai phép đo phạm vi thử nghiệm C++ tự động bằng gcov
  5. Tích hợp báo cáo % phạm vi thử nghiệm tự động cho cả Python và C++ thông qua Coveralls
  6. Thêm mô tả giải pháp văn xuôi cho các vấn đề không có chúng

Nếu bạn có bất kỳ đóng góp nào, vui lòng PR cho chi nhánh

git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
cd ctci
git submodule update --init
6. Vui lòng nhắn tin cho tôi để làm rõ về bất kỳ mục nào ở trên

ruột thừa. Phát triển Windows

Trên máy Windows của riêng tôi, tôi phát triển bằng cách sử dụng CLion chạy nguyên bản trong Windows và kiểm tra mã bằng cách sử dụng

git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
cd ctci
git submodule update --init
3 trong cửa sổ đầu cuối WSL. Đối với những người dùng không muốn sử dụng WSL, tôi đã phát triển phương pháp xây dựng và thử nghiệm bên dưới

Xây dựng

Dự án có thể được phát triển hoàn toàn trên Windows mà không cần WSL bằng cách sử dụng Visual Studio 2017. Đầu tiên sao chép mã

git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
cd ctci
git submodule update --init

Sau đó, cài đặt Python3 và numpy bằng phương pháp bạn chọn. Tôi thích cài đặt Python3 và pip3 từ trang web chính thức hơn là cài đặt numpy qua pip

pip install numpy

Sau đó, mở dự án trong Visual Studio 2017 có hỗ trợ CMake. Tôi thấy rằng quy trình làm việc tốt nhất là sử dụng Visual Studio để chỉnh sửa mã và sử dụng chức năng sửa lỗi. Trước khi xây dựng mã, bạn phải làm theo các hướng dẫn này để yêu cầu Visual Studio tải xuống PDB mà nó cần. Ngoài ra, bài viết này mô tả hỗ trợ Visual Studio CMake chi tiết hơn nếu bạn quan tâm. Một CMakeSettings. json trong thư mục gốc của dự án đặt vị trí của thư mục bản dựng Visual Studio nằm trong thư mục gốc của dự án

thử nghiệm

Chạy thử nghiệm và xem đầu ra của chúng được thực hiện tốt nhất từ ​​cửa sổ PowerShell vì VisualStudio ở chế độ CMake không cho phép đầu ra bảng điều khiển của các tệp

git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
cd ctci
git submodule update --init
8 và
git clone //github.com/alexhagiopol/cracking-the-coding-interview.git
cd ctci
git submodule update --init
9 vẫn hiển thị ngay cả khi nhấn CTRL + F5 như được mô tả trong bài đăng này áp dụng cho "bình thường . Tôi đang theo dõi tình hình lại. Visual Studio và khi tôi tìm thấy giải pháp tốt hơn, tôi sẽ triển khai hoặc đăng chúng. Nếu bạn biết một cái gì đó tốt hơn, xin vui lòng liên hệ với tôi

Làm cách nào để bẻ khóa cuộc phỏng vấn mã hóa bằng Python?

Làm thế nào để bạn trả lời các câu hỏi phỏng vấn viết mã Python? . Thử các bài kiểm tra giả, tìm hiểu mọi chi tiết trong khi viết mã, vẽ một ví dụ cụ thể, thiết kế một thuật toán, tối ưu hóa nó, viết mã và kiểm tra nó. practice on paper. Attempt mock tests, learn every detail while coding, draw a specific example, design an algorithm, optimize it, write the code, and test it.

Đọc Cracking the Coding Interview có đáng không?

Bẻ khóa cuộc phỏng vấn mã hóa cung cấp cho bạn cái nhìn toàn cảnh tuyệt vời về các cấu trúc dữ liệu và thuật toán có liên quan, nhưng nó không đi sâu vào các nguyên tắc cơ bản. When you enter a coding interview, there is a slim chance you are going to get a problem that you have seen before.

Cuốn sách Cracking the Coding Interview có dành cho người mới bắt đầu không?

Bẻ khóa cuộc phỏng vấn lập trình của Gayle Laakmann McDowell . If you are a beginner with little experience in preparing for a coding interview, this book is going to be your best bet.

Grokking cuộc phỏng vấn viết mã tốt như thế nào?

Bản án. Tóm lại, tôi sẽ nói rằng Grokking The Coding Interview là một khóa học thực tế và đầy thử thách nơi bạn sẽ học nhiều mẫu mã cơ bản có thể được sử dụng để giải 100 câu hỏi . Nó là một lựa chọn hoàn hảo cho các kỹ sư phần mềm đầy tham vọng.

Chủ Đề