BÀI KIỂM TRA LUYỆN TẬPCông nghệ và lập trình

Luyện thi lập trình theo phong cách HackerRank

Bài luyện tập miễn phí theo phong cách HackerRank: độ phức tạp, cấu trúc dữ liệu, đọc mã Python, chọn lời giải vượt qua mọi trường hợp kiểm thử và một bài toán cơ sở dữ liệu. Mỗi câu trả lời đều có lời giải thích.

  • 10 câu hỏi miễn phí, không cần tài khoản
  • Bấm giờ như bài kiểm tra thực tế
  • Hủy bất cứ lúc nào
Bài mẫu miễn phí
10 câu hỏi · 30 phút
Các phần
  • Khái niệm và đọc hiểu mã
  • Bài toán lập trình
  • Bài toán cơ sở dữ liệu
Bài thi thử đầy đủ
Số câu hỏi và thời gian giới hạn của bài thi thực tế

Câu trả lời ngắn gọn

Bài kiểm tra HackerRank là bài đánh giá lập trình trực tuyến mà nhiều nhà tuyển dụng tạo trên nền tảng HackerRank để sàng lọc lập trình viên trước các buổi phỏng vấn. Không có một bài kiểm tra HackerRank duy nhất: mỗi nhà tuyển dụng tự chọn câu hỏi, ngôn ngữ và giới hạn thời gian. Bài luyện tập miễn phí này có 10 câu hỏi nguyên bản thuộc các lĩnh vực tương tự và kéo dài 30 phút.

Bài mẫu miễn phí
10 câu hỏi trong 30 phút
Định dạng
Do từng nhà tuyển dụng quy định
Ví dụ (HackerRank Python Basic)
2 câu hỏi trong 90 phút
Câu hỏi lập trình được chấm điểm
Tự động, theo các trường hợp kiểm thử
Bài thi thử đầy đủ của chúng tôi
14 câu hỏi trong 90 phút, mã chạy được

Dùng thử miễn phí

10 câu hỏi trong 30 phút, với tốc độ thực tế. Cuối bài, bạn sẽ nhận được điểm số và lời giải thích cho từng câu trả lời.

Đang tải câu hỏi luyện tập

Chọn gói của bạn

Mở khóa nội dung luyện tập đầy đủ

Bài kiểm tra theo phong cách HackerRank: các bài thi thử đầy đủ có giới hạn thời gian, cùng mọi bài kiểm tra khác

Chọn gói
Đăng ký gói Monthly
  • Bài thi thử đầy đủ, có tính giờ cho bài kiểm tra này
  • Giải thích cho từng câu hỏi
  • Điểm theo từng dạng câu hỏi và lịch sử làm bài của bạn
  • Bao gồm tất cả 93 bài kiểm tra luyện tập
  • Dùng được trên điện thoại và máy tính

Hoàn tiền trong 7 ngày nếu bạn chưa làm quá một bài thi thử đầy đủ. Giá tính bằng USD.

Nội dung luyện tập đầy đủ gồm những gì

Bài thi thử đầy đủ theo định dạng và thời gian của bài kiểm tra thực tế, mỗi bài đều có phần xem lại đầy đủ sau khi hoàn thành.

  1. Miễn phíBài mẫu miễn phí10 câu hỏi · 30 phút
  2. Bài thi thử đầy đủSố câu hỏi và thời gian giới hạn của bài thi thực tế
  3. Luyện tập Khái niệm và đọc hiểu mãCó giới hạn thời gian, kèm giải thích cho từng đáp án
  4. Luyện tập Bài toán lập trìnhCó giới hạn thời gian, kèm giải thích cho từng đáp án
  5. Luyện tập Bài toán cơ sở dữ liệuCó giới hạn thời gian, kèm giải thích cho từng đáp án
  6. Phần xem lại đầy đủĐiểm theo từng dạng câu hỏi sau mỗi bài thi thử

Bài mẫu miễn phí hoặc luyện tập đầy đủ

Tính năngMiễn phíĐầy đủ
Câu hỏi theo phong cách bài thi thực tế
Giải thích mọi câu trả lời
Bài thi thử đầy đủ, có tính giờ
Điểm số theo dạng câu hỏi
Lịch sử điểm số qua các bài thi thử
Tất cả 93 bài kiểm tra luyện tập

Hướng dẫn ôn tập miễn phí

Những điều cần biết về bài kiểm tra thực tế, được trình bày trong các bài học ngắn.

Bài học 1

Bài kiểm tra thực tế thường có dạng như thế nào

Không có một bài kiểm tra HackerRank duy nhất. HackerRank là một nền tảng: mỗi nhà tuyển dụng tự xây dựng bài kiểm tra, chọn câu hỏi, ngôn ngữ được phép sử dụng và thời gian làm bài. Thư mời từ nhà tuyển dụng là hướng dẫn tốt nhất để bạn biết bài kiểm tra của mình sẽ như thế nào.

Các dạng câu hỏi. HackerRank liệt kê nhiều dạng câu hỏi trong bài kiểm tra, bao gồm lập trình, cơ sở dữ liệu, trắc nghiệm, front-end, back-end, full-stack, rà soát mã, câu hỏi tự luận và các dạng khác (HackerRank). Hầu hết bài kiểm tra lập trình tập trung vào một vài dạng sau:

  • Câu hỏi lập trình: bạn viết lời giải trong trình soạn thảo. HackerRank cho biết ứng viên có thể chạy mã với các trường hợp kiểm thử; sau đó mã được chấm dựa trên các trường hợp mẫu bạn nhìn thấy và các trường hợp ẩn bạn không nhìn thấy (HackerRank support).
  • Câu hỏi cơ sở dữ liệu: bạn viết truy vấn SQL và kết quả được so sánh với đầu ra mong đợi (HackerRank support).
  • Trắc nghiệm: các câu hỏi về khái niệm, độ phức tạp và chức năng của một đoạn mã, được chấm tự động (HackerRank).

Ví dụ công khai về thời lượng. Các bài kiểm tra kỹ năng của HackerRank cho thấy thời lượng có thể khác nhau: bài kiểm tra Python (Basic) được ghi là 2 câu hỏi trong 90 phút (HackerRank), còn bài SQL (Basic) là 2 câu hỏi trong 30 phút (HackerRank). Bài kiểm tra của nhà tuyển dụng có thể ngắn hơn hoặc dài hơn, với số câu hỏi nhiều hơn hoặc ít hơn.

Các chủ đề thường được nhắc đến trong bài kiểm tra lập trình: mảng và chuỗi, hash map và set, sắp xếp và tìm kiếm, độ phức tạp thời gian, các trường hợp biên như đầu vào rỗng hoặc âm, và SQL cơ bản.

Các bài mô phỏng của chúng tôi bao gồm những gì. Mỗi bài mô phỏng đầy đủ có 14 câu hỏi trong 90 phút, gồm ba phần: khái niệm và đọc hiểu mã (10), bài toán lập trình (3) và bài toán cơ sở dữ liệu (1). Với các bài toán lập trình, bạn viết và chạy lời giải bằng Python, JavaScript, Java hoặc C++; với bài toán cơ sở dữ liệu, bạn viết truy vấn SQL. Mỗi câu được kiểm tra với các trường hợp kiểm thử ẩn và bạn nhận điểm cho mỗi trường hợp vượt qua. Nên sử dụng máy tính xách tay. Bạn có thể quay lại và đánh dấu câu hỏi.

Điểm khác biệt của bài mẫu miễn phí. 10 câu hỏi miễn phí là dạng trắc nghiệm: câu hỏi lập trình yêu cầu chọn lời giải vượt qua kiểm tra hoặc đầu vào khiến một lời giải thất bại, qua đó kiểm tra các kỹ năng cần thiết để viết mã vượt qua bài kiểm tra. Trong các bài mô phỏng đầy đủ, bạn sẽ tự viết và chạy mã. Các trường hợp ẩn của chúng tôi có quy mô nhỏ và kiểm tra tính đúng đắn cùng các trường hợp biên, nên chúng không tính giờ để loại lời giải chậm trên đầu vào rất lớn như một số bài kiểm tra thực tế; phần giải thích cho biết khi nào tốc độ là yếu tố quan trọng.

Bài học 2

Các dạng câu hỏi kèm ví dụ có lời giải

Mỗi dạng câu hỏi có một ví dụ có lời giải, kèm theo lỗi nhiều người dễ mắc phải.

1. Độ phức tạp thời gian. Một vòng lặp trên danh sách gọi "x in other_list" ở mỗi lần lặp. Cả hai danh sách đều có n phần tử. Vòng lặp chạy n lần và mỗi lần kiểm tra phần tử có trong danh sách sẽ quét tối đa n phần tử, vì vậy tổng độ phức tạp là O(n bình phương). Chuyển other_list thành một tập hợp giúp mỗi lần kiểm tra có độ phức tạp trung bình O(1), và vòng lặp có độ phức tạp O(n). Lỗi dễ mắc: chỉ đếm vòng lặp nhìn thấy được. Các lệnh dựng sẵn như "in" trên danh sách, list.index và thao tác cắt lát cũng thực hiện công việc.

2. Đọc mã. print([x * 2 for x in range(3)]) hiển thị gì? range(3) trả về 0, 1 và 2, nên đáp án là [0, 2, 4]. Lỗi dễ mắc: bắt đầu từ 1 hoặc tính cả 3. range dừng trước giá trị kết thúc.

3. Lời giải nào vượt qua bài kiểm thử. Một bài toán cho phép tối đa 100,000 phần tử. Lời giải O(n bình phương) cần khoảng 10 billion bước, quá chậm so với giới hạn thời gian thông thường, trong khi O(n) hoặc O(n log n) thì phù hợp. Lỗi dễ mắc: chọn lời giải trông ngắn nhất. Trước tiên, hãy so sánh độ phức tạp với kích thước được nêu.

4. Đầu vào nào khiến chương trình lỗi. Một hàm trả về giá trị trung bình của danh sách bằng sum(nums) / len(nums). Đầu vào nào khiến hàm lỗi? Một danh sách rỗng, vì phép tính sẽ chia cho 0. Lỗi dễ mắc: chỉ kiểm tra đầu vào thông thường. Hãy thử danh sách rỗng, một phần tử, các phần tử bằng nhau, số âm và kích thước lớn nhất được phép.

5. Bài toán cơ sở dữ liệu. Bạn cần tính tổng số tiền mỗi khách hàng đã chi, kể cả những khách hàng chưa chi tiêu. Dùng customers LEFT JOIN orders, nhóm theo khách hàng và tính tổng số tiền, sau đó chuyển NULL thành 0 bằng COALESCE. Lỗi dễ mắc: dùng inner join, âm thầm loại bỏ những khách hàng chưa có đơn hàng.

Bài học 3

Cách chuẩn bị

  1. Trước tiên, hãy đọc thư mời. Ghi lại thời gian làm bài, số lượng và dạng câu hỏi, cùng các ngôn ngữ được phép sử dụng. Nhà tuyển dụng quyết định tất cả những điều này, vì vậy đừng tự suy đoán.
  2. Chọn một ngôn ngữ và sử dụng xuyên suốt. Dùng ngôn ngữ bạn thành thạo nhất cho các câu hỏi lập trình. Hãy nắm vững các danh sách, từ điển, tập hợp, cách sắp xếp và phương thức xử lý chuỗi có sẵn để không phải tra cứu.
  3. Hiểu độ phức tạp theo kích thước đầu vào. Kiểm tra các giới hạn được nêu trước khi viết mã. Với tối đa khoảng 1,000 phần tử, O(n bình phương) thường ổn; với 100,000 phần tử trở lên, hãy hướng đến O(n) hoặc O(n log n).
  4. Chủ động luyện các trường hợp biên. Đầu vào rỗng, một phần tử, giá trị trùng lặp, số âm, giá trị rất lớn và kích thước tối đa. Câu hỏi lập trình được chấm bằng các trường hợp kiểm thử ẩn (HackerRank support); phần lớn trường hợp như vậy thường nằm ở đây.
  5. Chạy các trường hợp mẫu, sau đó tự kiểm tra thêm. Vượt qua các trường hợp mẫu nhìn thấy được mới chỉ là bước đầu, chưa phải kết thúc. Hãy tự thêm một vài trường hợp trước khi nộp bài.
  6. Ôn lại SQL cơ bản. JOIN, GROUP BY, HAVING, NULL và sắp xếp bao quát phần lớn câu hỏi cơ sở dữ liệu. Kiểm tra kết quả theo từng dòng, vì câu trả lời cơ sở dữ liệu được so sánh với đầu ra mong đợi (HackerRank support).
  7. Viết lời giải hoàn chỉnh trong điều kiện giới hạn thời gian. Trong các bài mô phỏng đầy đủ, bạn sẽ viết và chạy mã với các trường hợp ẩn; hãy luyện tập tương tự với các bài toán của riêng bạn để việc viết lời giải hoàn chỉnh trong thời gian giới hạn trở nên quen thuộc.
  8. Luyện tập với nhịp độ thực tế. Làm các bài mô phỏng đầy đủ có bấm giờ để 90 phút tập trung làm bài trở nên quen thuộc vào ngày thi.
Bài học 4

Cách tính điểm thường gặp

Cách chấm điểm do từng nhà tuyển dụng thiết lập. HackerRank giải thích cách chấm điểm các dạng câu hỏi, còn mỗi nhà tuyển dụng tự quyết định kết quả nào là đạt yêu cầu. Không có mức điểm đạt chung cho tất cả.

  • Câu hỏi lập trình: HackerRank cho biết hệ thống chạy mã của bạn với từng trường hợp kiểm thử và so sánh mỗi đầu ra với đầu ra mong đợi. Mỗi trường hợp kiểm thử có một mức điểm cố định: vượt qua thì được toàn bộ điểm, không vượt qua thì không được điểm nào, không có điểm từng phần cho một trường hợp kiểm thử. Điểm của bạn cho câu hỏi là tổng điểm của các trường hợp kiểm thử bạn vượt qua. Các trường hợp mẫu mà bạn có thể xem có thể không tính điểm, trong khi các trường hợp ẩn mới có điểm (bộ phận hỗ trợ HackerRank).
  • Câu hỏi cơ sở dữ liệu: kết quả truy vấn của bạn được so sánh với đầu ra mong đợi: khớp thì được toàn bộ điểm, còn không khớp thì được 0 điểm, trừ khi nhà tuyển dụng xem xét thủ công và cho điểm từng phần (bộ phận hỗ trợ HackerRank).
  • Trắc nghiệm: được chấm tự động (HackerRank).

Vì vậy, một lời giải gần đúng hoặc đúng nhưng quá chậm có thể mất phần lớn số điểm: mỗi trường hợp ẩn chỉ có thể đạt hoặc không đạt.

Điểm luyện tập của chúng tôi là số câu hỏi do chúng tôi biên soạn mà bạn trả lời đúng, kèm theo bảng phân tích theo từng phần để bạn biết nên tập trung vào đâu. Đây là điểm luyện tập, không phải điểm HackerRank hay kết quả do bất kỳ nhà tuyển dụng nào đưa ra, và không dự đoán liệu bạn có vượt qua bài kiểm tra hay không.

Bài học 5

Những lỗi thường gặp

  • Dừng lại khi các ví dụ mẫu chạy đúng. Ví dụ hiển thị chỉ chiếm một phần nhỏ trong các trường hợp kiểm thử. Hãy tự kiểm tra đầu vào rỗng, một phần tử, số âm và kích thước lớn nhất.
  • Bỏ qua giới hạn đầu vào. Một lời giải đúng nhưng chậm vẫn có thể thất bại với các trường hợp ẩn có kích thước lớn. Hãy đọc giới hạn trước khi chọn cách giải.
  • Bắt đầu tìm giá trị lớn nhất từ 0. Hãy bắt đầu từ phần tử đầu tiên, nếu không các số âm sẽ khiến cách làm này sai.
  • Thay đổi danh sách trong khi đang lặp qua danh sách đó. Xóa phần tử khi đang lặp sẽ khiến một số phần tử bị bỏ qua. Thay vào đó, hãy tạo danh sách mới.
  • Lỗi lệch một đơn vị trong range. range(a, b) dừng trước b, lát cắt cũng hoạt động tương tự. Hãy kiểm tra chỉ mục đầu tiên và cuối cùng trên một ví dụ nhỏ.
  • In thêm nội dung ngoài yêu cầu. Đáp án lập trình được so sánh với kết quả mong đợi, vì vậy các dòng gỡ lỗi thừa hoặc khoảng trắng thừa có thể khiến một trường hợp kiểm thử thất bại.
  • Dành quá nhiều thời gian cho một bài. Trước tiên hãy nộp lời giải chạy được, sau đó cải thiện nếu còn thời gian.

Câu hỏi luyện tập do chúng tôi biên soạn, không phải câu hỏi thật hay bị rò rỉ. Bạn có thể hủy gói Monthly bất cứ lúc nào và yêu cầu hoàn tiền trong vòng 7 ngày nếu đã làm không quá một bài thi thử đầy đủ.

Câu hỏi thường gặp

Có một bài kiểm tra HackerRank mà mọi nhà tuyển dụng đều sử dụng không?+

Không. HackerRank là một nền tảng. Mỗi nhà tuyển dụng tự tạo bài kiểm tra và chọn câu hỏi, ngôn ngữ cũng như thời gian làm bài. Thư mời là nguồn tham khảo tốt nhất để biết bài kiểm tra của bạn bao gồm những gì.

Các bài thi thử của bạn có chạy đoạn mã tôi viết không?+

Có, trong bài thi mô phỏng đầy đủ. Bạn viết lời giải cho các bài tập lập trình bằng Python, JavaScript, Java hoặc C++, và bài tập cơ sở dữ liệu bằng SQL. Mỗi bài được chạy với các trường hợp kiểm thử ẩn, và bạn được tính điểm cho mỗi trường hợp vượt qua. Bài mẫu miễn phí gồm các câu hỏi trắc nghiệm. Các trường hợp kiểm thử của chúng tôi có quy mô nhỏ, nhằm kiểm tra tính chính xác và các trường hợp biên, thay vì tốc độ xử lý dữ liệu đầu vào rất lớn.

Tôi nên luyện tập bằng ngôn ngữ nào?+

Hãy sử dụng ngôn ngữ mà bạn thành thạo nhất trong số những ngôn ngữ được phép dùng trong bài kiểm tra. Các câu hỏi trắc nghiệm của chúng tôi sử dụng Python 3 vì ngôn ngữ này ngắn gọn và dễ đọc. Các bài tập lập trình trong bài thi mô phỏng đầy đủ chấp nhận Python, JavaScript, Java hoặc C++. Những kiến thức như độ phức tạp, các trường hợp biên và cách chọn cấu trúc dữ liệu đều có thể áp dụng với mọi ngôn ngữ.

Tôi cần đạt điểm số bao nhiêu để vượt qua?+

Không có mức điểm đạt chung cho tất cả. Mỗi nhà tuyển dụng quyết định kết quả nào giúp bạn đi tiếp. Hãy cố gắng vượt qua mọi ca kiểm thử ẩn bằng một lời giải chính xác và đủ nhanh với bộ dữ liệu đầu vào lớn nhất.

Đây có phải là các câu hỏi HackerRank không?+

Không. Đây là các câu hỏi luyện tập nguyên bản do đội ngũ của chúng tôi biên soạn theo phong cách tương tự. Intellect Council không liên kết với HackerRank (Interviewstreet, Inc.) hay bất kỳ nhà tuyển dụng nào sử dụng nền tảng này.

Nguồn

  1. Cơ sở kiến thức HackerRank: Các dạng câu hỏi trong bài kiểm tra HackerRank, đã kiểm tra vào 2026-11-09
  2. Cơ sở kiến thức HackerRank: Cách chấm điểm câu hỏi (tổng quan), đã kiểm tra vào 2026-11-09
  3. Hỗ trợ HackerRank: Câu hỏi lập trình (cách chấm điểm câu hỏi lập trình trong bài kiểm tra), đã kiểm tra vào 2026-11-09
  4. Hỗ trợ HackerRank: Câu hỏi dành cho kỹ sư cơ sở dữ liệu (cách chấm điểm câu hỏi về cơ sở dữ liệu), đã kiểm tra vào 2026-11-09
  5. Bài kiểm tra kỹ năng HackerRank: Python (Basic), đã kiểm tra vào 2026-11-09
  6. Bài kiểm tra kỹ năng HackerRank: SQL (Basic), đã kiểm tra vào 2026-11-09

Về trang này

Được viết và biên tập bởi đội ngũ Intellect Council. Lần rà soát gần nhất . Đọc chính sách biên tập của chúng tôi.

Xem tất cả 93 bài kiểm tra luyện tập

Bài thi thử đầy đủ có giới hạn thời gian và kèm giải thích.Mở khóa quyền truy cập đầy đủ
BÀI KIỂM TRA ĐANG ĐẾN GẦN. HÃY SẴN SÀNG.

Bước vào buổi kiểm tra với sự chuẩn bị tốt.
Hãy yên tâm rằng bạn đã cố gắng hết sức.

Luyện tập có tính giờ theo định dạng thực tế, với lời giải cho từng câu trả lời.

Bắt đầu bài kiểm tra luyện tập miễn phíHoặc xem các bài thi thử đầy đủ Bài mẫu miễn phí. Không cần tài khoản để bắt đầu.