在北美大厂的 Online Assessment 里,Stripe 的笔试绝对是 “画风清奇” 的存在 —— 不考花哨的算法技巧,反而扔给你一道题面冗长、规则绕人的业务场景题,一小时只够啃一题,却能把 “逻辑拆解 + 工程实现能力” 扒得明明白白。
很多同学栽在 Stripe OA 上,不是因为算法不行,而是被 “边读题边写代码” 的混乱节奏带崩:一会儿要处理金额乘法,一会儿要统计用户交易次数,还要兼顾不同时间段的奖惩规则,最后要么重复计算,要么漏了关键条件。
今天就把这道经典的 “商家欺诈分数计算” 真题拆透,给你一套可直接套用的解题框架,再分享避坑指南,最后附上省心方案,帮你在 OA 里少走弯路~
一、真题核心目标(一句话看懂题目)
根据一天内的交易记录、对应规则列表,给每个商家计算最终欺诈分数,最后按商家名字字典序输出 “名字,分数”。
简单说就是 “按规则算分”,但规则多且有优先级,直接逐条处理交易必踩坑!
二、关键输入信息(必记 3 个核心)
- transactions_list:一天内所有交易记录,每条包含商家 ID、用户 ID、交易金额、交易小时数等;
- rules_list:和交易一一对应的规则,每条有最小交易金额、乘法因子、加法因子、惩罚值;
- merchants_list:商家列表,每个商家有初始基础分(current_score 初始 = base_score)。
⚠️ 核心提醒:交易和规则是 “一一对应” 的!后面合并处理能少踩 80% 的坑。
三、6 步解题框架(稳过不踩坑)
这题的精髓是 “先收集状态,再统一结算”,而不是逐条交易即时计算!按下面步骤来,逻辑清晰到飞起:
Step 1:先把商家信息转成字典(快速查分)
第一步不着急算分,先把 merchants_list 转成键值对:{merchant_id: current_score}current_score 初始就是商家的 base_score,后面所有规则都基于这个值修改,查改效率最高。
Step 2:合并交易和规则(避免来回索引)
因为交易和规则一一对应,直接合并成一条完整记录,包含这些关键字段:商家 ID、用户 ID、交易金额、交易小时、最小交易金额、乘法因子、加法因子、惩罚值后面所有逻辑都围绕这个 “合并后的 records 列表” 展开,不用在多个数组之间跳来跳去,减少出错概率。
Step 3:第一轮遍历 —— 处理金额乘法规则(基础分修改)
规则:如果交易金额 > 对应规则的 “最小交易金额”,就把商家当前分数 × 乘法因子。✅ 避坑点:
- 是 “严格大于”(不是大于等于);
- 每笔交易单独判断,直接更新商家分数;
- 这一轮只做乘法,加法 / 惩罚先不碰!
Step 4:第二轮遍历 —— 处理用户 + 商家的加法规则(累计加分)
规则:同一用户对同一商家的交易次数≥3 次(含当前交易),则该组所有交易的 “加法因子” 全部累加到商家分数里。✅ 正确做法:
- 按「商家 ID + 用户 ID」分组,统计每组交易次数;
- 只要次数≥3,就把组内所有加法因子求和,一次性加到商家分数上;
- 千万别逐笔加!否则第三笔会重复加前两笔的因子,直接算错。
Step 5:第三轮遍历 —— 处理同小时交易的奖惩规则(最绕但有模板)
规则:同一用户、同一商家、同一小时内交易≥3 次(含当前),按时间段奖惩:
- 12:00-17:00(含):每笔交易加惩罚值(注意是 “加” 不是 “减”);
- 9:00-11:00 或 18:00-21:00(含):每笔交易减惩罚值;
- 其他时间段:不操作。
✅ 正确做法:
- 按「商家 ID + 用户 ID + 小时」分组,统计交易次数;
- 次数≥3 才触发,计算总奖惩:惩罚值 × 交易次数;
- 按时间段判断是 “加” 还是 “减”,一次性更新商家分数。
Step 6:排序输出(格式不能错!)
最后按商家名字的字典序排序,输出格式严格为 “name,score”——HackerRank 对格式零容忍,多一个空格、少一个逗号都会直接判错!
四、这道题本质在考什么?(不止是代码)
Stripe OA 不考算法复杂度,重点考察 3 个核心能力:
- 复杂业务规则的拆解能力:能不能把 “多条件、多优先级” 的规则拆成独立步骤;
- 多维状态统计能力:能不能按 “商家 + 用户”“商家 + 用户 + 小时” 正确分组;
- 工程化实现能力:代码结构是否清晰、是否考虑边界情况(比如交易次数刚好 3 次)。
如果一边读题一边写代码,很容易陷入 “越写越乱” 的循环,提前记住 “先分组统计,再统一结算” 的思路,直接套用框架就行~
五、如果 OA 迫在眉睫,试试省心方案
不是所有人都有时间逐题打磨,尤其是临近截止日期、OA 容错率极低的关键阶段 —— 可能你花一下午调试规则细节,最后却因为格式错误挂掉,反而耽误面试节奏。
这里给大家推荐一个稳妥选择:专业 OA 代写服务,覆盖 Stripe、Google、Amazon 等大厂笔试,以及 HackerRank、牛客网、CodeSignal 等主流平台。
✅ 核心优势:
- 北美工程师人工代做,不是机刷,100% 适配题目规则,所有测试用例全过(不过不收费);
- 流程安全:远程控制操作,不用共享账号,不留任何痕迹,避免账号风险;
- 响应快:私域直接对接,沟通高效,适合赶截止日期的同学;
- 省时间:把调试代码、抠格式的时间省下来,专注准备面试核心环节。
其实 OA 的核心是 “通过筛选”,与其自己死磕复杂业务题,不如把专业的事交给专业的人,把精力放在更能拉开差距的面试上~
最后说两句
Stripe 的 OA 看似复杂,但只要掌握 “分阶段处理、先统计后结算” 的核心逻辑,就能化繁为简。如果能自己啃下来,对业务逻辑拆解能力的提升非常大;如果时间紧张,也可以选择省心方案,避免因小失大。
如果大家有其他大厂 OA 的难题,或者想了解更多解题技巧,欢迎在评论区交流~ 祝大家都能顺利通过 OA,拿到心仪 offer!