练习测试技术与编程

HackerRank 风格编程测试练习

免费 HackerRank 风格练习测试:涵盖复杂度、数据结构、阅读 Python 代码、选择能通过所有测试用例的解法,以及一道数据库题,并逐题讲解答案。

  • 10道免费题目,无需注册账户
  • 计时方式与真实测试相同
  • 可随时取消
免费试做
10道题 · 30分钟
部分
  • 概念与代码阅读
  • 编程题
  • 数据库题
完整模拟测验
实际测试的题量和时间限制

简短回答

HackerRank测试是一种在线编程测评,许多雇主会在HackerRank平台上创建这类测评,在面试前筛选开发人员。HackerRank测试并非只有一种:题目、编程语言和时间限制都由各个雇主自行决定。这项免费练习测试包含10道相关领域的原创题,时长为30分钟。

免费试做
30分钟完成10道题
格式
由各雇主设定
示例(HackerRank Python Basic)
90分钟完成2道题
编程题得分
根据测试用例自动评估
我们的完整模拟测试
90 分钟 14 道题,编写并运行代码

免费试用

30分钟内完成10道题,按正式考试节奏作答。结束后查看得分和每道题的解析。

正在加载练习题

选择您的套餐

解锁完整练习

HackerRank 风格测试:完整长度的限时模拟测试,另含所有其他测试

选择套餐
开通月度方案
  • 本测试的完整限时模拟测验
  • 每道题均附有解析
  • 查看各题型得分和练习记录
  • 包含全部 93 项练习测试
  • 手机和笔记本电脑均可使用

如果您完成的完整模拟测验不超过一套,可在 7 天内申请退款。价格以美元计。

完整练习包含哪些内容

完整模拟测验采用实际测试的形式和计时方式,每套完成后均可查看完整解析。

  1. Free免费试做10道题 · 30分钟
  2. 完整模拟测验实际测试的题量和时间限制
  3. 概念与代码阅读练习限时作答,每道题均附解析
  4. 编程题练习限时作答,每道题均附解析
  5. 数据库题练习限时作答,每道题均附解析
  6. 完整复盘每次模拟测试后查看各题型得分

免费样题或完整练习

功能Free完整
仿真实际测试风格的题目
每道题都附有解析
完整限时模拟测验
按题型查看成绩
各次模拟测试的成绩记录
全部 93 项练习测试

免费备考指南

通过简短课程,了解有关实际测试的一切。

第 1 课

正式测试通常是什么样

**目前没有一套统一的 HackerRank 测试。**HackerRank 是一个平台:每家雇主都会自行设计测试,选择题目、允许使用的语言和时限。雇主发来的邀请是了解你要参加哪种测试的最佳依据。

**题目类型。**HackerRank 列出了多种测试题型,包括编程、数据库、选择题、前端、后端、全栈、代码审查、主观题等 (HackerRank)。大多数编程测试会涉及其中几种:

  • **编程题:**你需要在编辑器中编写解法。HackerRank 表示,考生可以运行代码来对照测试用例进行检查,之后系统会根据你能看到的示例用例和你看不到的隐藏用例评分 (HackerRank support)。
  • **数据库题:**你需要编写 SQL 查询,系统会将查询结果与预期输出进行比较 (HackerRank support)。
  • **选择题:**考查概念、复杂度以及代码片段的功能,并由系统自动评分 (HackerRank)。

**公开的时长示例。**HackerRank 自己的技能测试可以让你了解时长范围:其 Python (Basic) 测试列出的是 90 分钟 2 道题 (HackerRank),SQL (Basic) 测试列出的是 30 分钟 2 道题 (HackerRank)。雇主的测试可能更短或更长,题目数量也可能更多或更少。

**编程测试中常见的考查内容:**数组和字符串、哈希表和集合、排序和搜索、时间复杂度、空输入或负数等边界情况,以及基础 SQL。

**我们的模拟测试涵盖哪些内容。**每套完整模拟测试包含 90 分钟 14 道题,分为三个部分:概念和代码阅读(10 道)、编程题(3 道)和数据库题(1 道)。编程题需要你用 Python、JavaScript、Java 或 C++ 编写并运行解法,数据库题则需要编写 SQL 查询;系统会用隐藏测试用例进行检查,每通过一个用例即可获得相应分数。建议使用笔记本电脑。你可以返回题目并为其添加标记。

**我们的免费样题有哪些不同之处。**10 道免费题均为选择题:编程题会问哪种解法能够通过,或者哪个输入会让某种解法出错,考查的是编写可通过代码所需的技能。完整模拟测试则要求你编写并运行代码。我们的隐藏用例规模较小,主要检查正确性和边界情况,因此不会像某些真实测试那样,对大规模输入下较慢的解法计时并判超时;解析会说明哪些情况下速度很重要。

第 2 课

附详细解答的题型示例

每种题型各举一个例子,并指出大多数人容易掉进的陷阱。

1. 时间复杂度。 遍历一个列表时,每次都调用一次 "x in other_list"。两个列表各有 n 个元素。循环会执行 n 次,每次查找最多扫描 n 个元素,因此整体复杂度是 O(n 的平方)。将 other_list 转换为集合后,平均每次查找的复杂度是 O(1),整个循环的复杂度是 O(n)。陷阱: 只计算表面上看到的循环。列表中的 "in"、list.index 和切片等内置操作也需要执行工作。

2. 阅读代码。 print([x * 2 for x in range(3)]) 会显示什么?range(3) 会生成 0、1 和 2,因此答案是 [0, 2, 4]。陷阱: 从 1 开始,或把 3 也算进去。range 不会包含结束值。

3. 哪种解法能通过。 题目允许最多 100,000 个元素。O(n 的平方) 解法大约需要 10 billion 步,对于常见的时间限制来说太慢了;而 O(n) 或 O(n log n) 通常足够快。陷阱: 选择看起来代码最短的解法。先根据题目给出的数据规模检查复杂度。

4. 哪种输入会导致错误。 一个函数通过 sum(nums) / len(nums) 返回列表的平均值。什么输入会导致错误?空列表,因为这会导致除以零。陷阱: 只测试常见输入。试试空列表、只有一个元素、所有值相同、负数,以及允许的最大数据规模。

5. 数据库题。 你需要计算每位客户的总消费,包括从未消费过的客户。使用 customers LEFT JOIN orders,按客户分组并对金额求和,然后用 COALESCE 将 NULL 转换为 0。陷阱: 使用 inner join,这会在不易察觉的情况下排除没有订单的客户。

第 3 课

如何准备

  1. **先仔细阅读测试邀请。**记下时限、题目数量和类型,以及允许使用的编程语言。这些都由雇主决定,不要想当然。
  2. **选定一门语言,并坚持使用。**编程题尽量使用你最熟悉的语言。熟练掌握该语言内置的列表、字典、集合、排序和字符串方法,做到无需临时查阅。
  3. **根据输入规模了解复杂度。**编程前先查看题目给出的限制。输入规模约为 1,000 项以内时,O(n squared) 通常可以接受;达到 100,000 项或更多时,尽量使用 O(n) 或 O(n log n) 的解法。
  4. **有意识地练习边界情况。**测试空输入、单个元素、重复值、负数、非常大的值以及最大输入规模。编程题会根据隐藏测试用例评分 (HackerRank support),很多边界情况就藏在这些用例中。
  5. **先运行示例用例,再测试自己的用例。**通过可见的示例只是开始,并不代表完成。提交前,自己再增加几个测试用例。
  6. **复习基础 SQL。**连接、GROUP BY、HAVING、NULL 和排序涵盖了大多数数据库题。逐行检查结果,因为数据库答案会与预期输出进行比较 (HackerRank support)。
  7. **限时编写完整解法。**我们的完整模拟测试要求你编写并运行代码,通过隐藏用例进行检查;你也可以用自己找来的题目练习,让限时输入完整解法变得熟悉。
  8. **按实际节奏练习。**参加完整的限时模拟测试,让自己习惯在 90 分钟内专注答题。
第 4 课

评分通常如何进行

**评分规则由各雇主设定。**HackerRank 介绍了不同题型的评分方式,而每位雇主会自行决定什么结果才算合格。没有通用的及格线。

  • **编程题:**HackerRank 表示,系统会用每个测试用例运行你的代码,并将每个输出与预期输出进行比较。每个测试用例都有固定分值:通过即可获得全部分数,未通过则不得分,每个测试用例内不设部分得分。该题得分为你通过的所有测试用例的分数总和。你能看到的示例用例可能值 0 分,而分值会放在隐藏用例上(HackerRank 支持)。
  • **数据库题:**系统会将查询结果与预期输出进行比较:匹配即可获得满分,否则得 0 分;但雇主也可能人工审核并酌情给部分分数(HackerRank 支持)。
  • **选择题:**自动评分(HackerRank)。

因此,解法即使几乎正确,或者虽然正确但速度太慢,也可能失去大部分分数:每个隐藏用例只有通过或未通过两种结果。

我们的练习分数是你答对的自编题目数量,并按部分列出明细,帮助你了解该重点练习哪些内容。这只是练习分数,不是 HackerRank 分数或任何雇主给出的结果,也无法预测你能否通过测试。

第 5 课

常见错误

  • 样例通过后就停止。 可见样例只覆盖了少数测试用例。请自行测试空输入、单个项目、负数和最大规模的数据。
  • 忽略输入限制。 正确但运行缓慢的解法可能无法通过大型隐藏测试用例。选择解法前先阅读限制条件。
  • 将最大值初始设为 0。 应从第一个元素开始,否则遇到负数时就会出错。
  • 在遍历列表时修改列表。 遍历过程中删除元素会跳过其他元素。请改为创建一个新列表。
  • 范围边界差一位。 range(a, b) 不包含 b,切片也是如此。用一个很小的例子检查第一个和最后一个索引。
  • 输出多余内容。 系统会将编程答案与预期输出进行比较,因此多余的调试输出或空格都可能导致测试用例失败。
  • 在一个问题上花太多时间。 先提交一个可运行的解法,如果还有时间再改进。

所有练习题均为原创,不是真题或泄露题。月度方案可随时取消。如果您完成的完整模拟测试不超过一次,可在 7 天内申请退款。

常见问题

是否有一套所有雇主都会使用的 HackerRank 测试?+

不是。HackerRank 是一个平台。每家雇主都会自行设计测试,选择题目、编程语言和时限。你的邀请最能说明测试包含哪些内容。

你们的模拟测试会运行我编写的代码吗?+

是的,完整模拟测试中可以。你可以使用 Python、JavaScript、Java 或 C++ 完成编程题,并使用 SQL 完成数据库题。每道题都会通过隐藏测试用例进行测试,每通过一个用例即可获得相应分数。免费样题为选择题。我们的测试用例规模较小,因此主要检查答案是否正确以及边界情况,而不是处理海量输入时的速度。

我应该用哪种语言练习?+

请使用你最熟悉且考试允许的编程语言。我们的选择题使用 Python 3,因为它简洁易读;完整模拟测试中的编程题可使用 Python、JavaScript、Java 或 C++ 作答。复杂度、边界情况和数据结构选择等概念适用于任何编程语言。

我需要达到多少分才能通过?+

没有统一的及格线。每位雇主都会决定什么样的结果能让你进入下一轮。目标是通过所有隐藏测试用例,也就是说,解法不仅要正确,还要能在最大规模的输入下足够快地运行。

这些是 HackerRank 的题目吗?+

不是。这些是我们团队原创的练习题,题目风格类似。Intellect Council 与 HackerRank (Interviewstreet, Inc.) 以及任何使用该平台的雇主均无关联。

来源

  1. HackerRank 知识库:HackerRank 测试中的题型,检查日期:2026-11-09
  2. HackerRank 知识库:题目评分(概述),检查日期:2026-11-09
  3. HackerRank 支持:编程题(测试中的编程题评分),检查日期:2026-11-09
  4. HackerRank 支持:数据库工程师题目(数据库题评分),检查日期:2026-11-09
  5. HackerRank:Python(基础)技能测试,检查日期:2026-11-09
  6. HackerRank:SQL(基础)技能测试,检查日期:2026-11-09

关于此页面

由 Intellect Council 团队撰写并审阅。 最近审核 . 阅读我们的编辑政策。

查看全部 93 项练习测试

完整限时模拟测试,附答案解析。获取完整访问权限
测评即将到来,做好准备。

做好准备,从容应考。
离开时,知道自己已经尽了最大努力。

按真实测试形式计时练习,每道题都附有解析。

开始免费练习测试或查看完整模拟测试 免费体验,无需注册账号即可开始。