Stripe OA 不同于 Google 或 Amazon 的 OA,Stripe 的题目往往一小时一题,单题难度偏高,题目长度和条件复杂度远超一般电商或者支付类面试题。今天,我分享一篇我刷过的一道题的最详解思路,包括数据预处理、分组统计、条件加分以及最终排序输出的完整套路,希望能帮大家快速上手 Stripe HackerRank Online Assessment Questions 深度拆解与解题模型总结。
Stripe HackerRank Online Assessment Questions 真题分享
给定商家列表、交易列表及每笔交易对应的规则,为每个商家计算最终的欺诈分数。每笔交易可能通过金额乘分、同一客户累计交易加分,以及同一小时交易的 penalty 来影响商家的分数。要求按规则顺序累加分数,并最终按商家 ID 字典序输出 merchant_id, score。
解题思路
我们先把 merch 先拆成字典,然后把 trans 还有 rules 合并记录一下,最后先遍历所有记录,给每个人初始乘上对应分数,按 mc h 分组,记录数量还有 add 之和, >= 3 那就加上对应的 sum,再按 mc h 分组,再统计 pen 之和,和 add 之和的规则一样,也是 >= 3 就加上对应的 sum,最后排序再·输出返回就行了,注意比较金额要用 >。
参考代码
from collections import defaultdict
from datetime import datetime
# 示例数据
merchants = ["M1", "M2"]
transactions = [
{"merchant_id": "M1", "customer_id": "C1", "amount": 100, "timestamp": "2026-01-24 10:15"},
{"merchant_id": "M1", "customer_id": "C1", "amount": 50, "timestamp": "2026-01-24 10:45"},
{"merchant_id": "M1", "customer_id": "C2", "amount": 200, "timestamp": "2026-01-24 11:05"},
{"merchant_id": "M2", "customer_id": "C3", "amount": 300, "timestamp": "2026-01-24 10:30"},
{"merchant_id": "M2", "customer_id": "C3", "amount": 150, "timestamp": "2026-01-24 10:45"},
{"merchant_id": "M2", "customer_id": "C4", "amount": 50, "timestamp": "2026-01-24 10:50"},
]
# 规则参数
factor = 2
customer_bonus = 1
hour_threshold = 3
hour_penalty = 5
# 初始化商家分数
score_map = {m: 0 for m in merchants}
# 规则1: 金额乘分 + 同一客户累计加分
customer_count = defaultdict(lambda: defaultdict(int))
hour_count = defaultdict(lambda: defaultdict(int)) # merchant_id -> hour_str -> count
for tx in transactions:
m_id = tx["merchant_id"]
c_id = tx["customer_id"]
amount = tx["amount"]
hour_str = tx["timestamp"][:13] # 保留 "YYYY-MM-DD HH"
# 金额乘分
score_map[m_id] += amount * factor
# 客户累计加分
score_map[m_id] += customer_bonus
customer_count[m_id][c_id] += 1
# 同一小时交易计数
hour_count[m_id][hour_str] += 1
# 规则2: 同一小时交易 penalty
for m_id, hours in hour_count.items():
for h, count in hours.items():
if count > hour_threshold:
score_map[m_id] -= hour_penalty
# 输出按商家 ID 字典序
for m_id in sorted(score_map.keys()):
print(m_id, score_map[m_id])
OA代写|大厂笔试|HackerRank 包过专业服务
如果你正被 OA / 大厂笔试反复卡住,这里可以给你一个更稳、更省时间的选择。我们提供专业的OA代写服务,覆盖各类大厂笔试与 HackerRank / 牛客网 / CodeSignal 等主流平台。全程由经验丰富的北美工程师人工完成,确保所有测试用例 100% 通过,如未通过则不收费。
操作方式采用远程控制,无需共享账号,不留任何操作痕迹,流程稳定、安全、低风险。全程私域对接,响应快、沟通直接,适合临近截止、容错率极低的关键 OA 阶段,帮你把精力留给真正重要的面试环节。