Citadel OA 真实体验|各岗位高频真题公开

3 Views
No Comment

最近帮几位同学做了几场 Citadel OA ,总体感觉很统一: 时间紧 + 题不难但细节多,真正卡人的不是算法,而是建模能力 + 写代码速度。这篇直接把最新一轮 OA 情况 + 各岗位高频题给大家拆一下。

Citadel OA 真实体验|各岗位高频真题公开

Citadel OA 需要多长时间?

根据候选人反馈,OA 时长通常为 75–90 分钟,具体取决于岗位:

  • 软件工程:2 道编程题 + 量化/逻辑题。
  • 量化研究:概率、编程和领域特定问题的混合。
  • 金融/数据类岗位:带有金融背景的量化题 + 逻辑挑战。

时间管理至关重要。常见策略是先把 60–70% 的时间花在你最擅长的部分,然后用剩余时间攻克难题。

Citadel HackerRank 题目 独家分享

Citadel SWE HackerRank 题目

问题 1:回文密码转换

Topic description: 给你一个由小写字母组成的密码字符串。你需要将其转换为一个长度相同的新密码,该新密码必须同时满足两个条件:

  1. 新密码必须是回文(正读反读相同)。
  2. 每隔 k 个字符必须相同(即位置相差 k 的倍数的字符必须相同)。

返回使原密码满足条件所需的最小字符修改次数。

Enter:

  • 字符串 s(1 ≤ |s| ≤ 10⁵),仅包含小写英文字母。
  • 整数 k(1 ≤ k ≤ |s|)。

Output: 一个整数,表示所需的最小修改次数。

Example:

Plaintext

输入: s = "abcda" k = 2 输出: 2 解释: - 要成为回文,位置 (0,4) 和 (1,3) 必须相同。 - 要满足 k=2 的条件,位置 (0,2,4) 必须相同,位置 (1,3) 必须相同。 至少需要 2 次修改。

问题 2:无连续重复的进程调度

Topic description: 给你 n 个进程,需要将它们安排到 n_intervals 个时间槽中。每个时间槽必须安排且仅安排一个进程。同一进程不能安排在两个连续的时间槽中。

返回有效的调度方案总数。

Enter:

  • 两个整数:n(1 ≤ n ≤ 20)和 n_intervals(1 ≤ n_intervals ≤ 50)。

Output: 一个整数,表示有效的调度方案数量。

示例 1:

输入: n = 2 n_intervals = 3 输出: 6 解释: 有两个进程(A、B)。长度为 3 的有效调度:ABA、BAB、ABB、BAA、AAB、BBA → 共 6 种。

示例 2:

输入: n = 3 n_intervals = 2 输出: 6 解释: 有三个进程(A、B、C)。长度为 2 且无连续重复的有效调度:AB、AC、BA、BC、CA、CB → 共 6 种。

Citadel 量化交易 HackerRank 题目

以下是量化交易职位常见的概率与期望值问题:

  1. 青蛙跳跃问题(Frog Jump Problem) 青蛙从 Ground → Rock → Grass 跳跃。
    • P(Ground → Rock) = 1/3
    • P(Rock → Grass) = 1/4 计算:逃脱所需的期望跳跃次数(E[num of jumps to escape])。
  2. 五局三胜锦标赛(Tournament Best of 5) 两支队伍进行比赛,直到一方赢得 3 局(五局三胜)。 计算:比赛进行的期望局数(E[num of games played]).
  3. 袜子配对概率(Socks Pairing Probability) 10 只袜子:5 只红色、5 只白色。 计算:抽取 4 只袜子后组成两对的概率.
  4. 相邻相同发色人数期望(Adjacent Pairs with Same Hair Color) 4 人红发,8 人黑发。 计算:相邻两人发色相同的期望对数(E[num of adjacent pairs w/ same color hair]).
  5. 公交车晚点问题(Bus Lateness Problem)
    • 红车晚点概率 3/4
    • 蓝车晚点概率 1/3 一个人随机乘坐公交车。已知乘坐红车概率为 1/2,且该人迟到了,计算红车与蓝车的比例.
  6. 岛上游客问题(Tourists on Islands) 三名游客分别独立随机选择三个岛屿之一。 计算:三个岛屿游客数量中位数的期望值.
  7. 社区步行时间问题(Neighborhood Walk Time) 一个社区有 25 人,每人步行时间均值为 80 分钟,标准差为 10 分钟。 计算:整个社区总步行时间的标准差。

Citadel NXT HackerRank 题目

问题:实现高效的订单簿匹配引擎

允许时间: 45 minutes.

目标: 实现一个简化的订单簿核心功能,能够高效接收和处理买入与卖出订单。

数据结构设计要求:

  • 使用 最大堆(max-heap) 存储所有买入订单(Bids),按订单价格优先(最高买价优先)。
  • 使用 最小堆(min-heap) 存储所有卖出订单(Asks),按订单价格优先(最低卖价优先)。

匹配逻辑:

  • 买入订单匹配:如果新买入订单的价格 ≥ 当前最低卖出订单价格,则发生交易。
  • 卖出订单匹配:如果新卖出订单的价格 ≤ 当前最高买入订单价格,则发生交易。
  • 交易发生后,从堆中移除已匹配的订单,并处理剩余数量。

功能要求:

  • 编写一个中心函数来处理新订单。
  • 输入:订单类型(buy/sell)、价格、数量。
  • Output:
    • 总交易量
    • 交易后订单簿的状态(最佳买价和最佳卖价)

一站式求职辅助|OA + 面试全流程支持

最近很多同学在准备大厂 OA / 面试,时间紧 + 压力大,确实很容易在关键环节翻车。Programhelp 主要做 OA 和面试相关的辅助支持,像 HackerRank、CodeSignal、牛客这些平台都比较熟,也整理了不少高频题和思路。这段时间确实已经帮不少同学顺利上岸大厂和量化岗位,很多其实差的就是临场一点点节奏和思路。如果你自己准备有点拿捏不准,或者总是卡在某一环,也可以来聊聊看看怎么优化更合适。

END
 0