Amazon OA 刚做完|AI Coding
这组 Amazon OA 的两道编程题差别很大。第一题要合并两个字符串,把冲突数量降到最低;第二题直接给一个电影项目,要求修好关注和通知功能。 第一题得先想清楚状态如何定义。到了第二题,还要找到功能入口、看懂数据如何传,再根据测试定位问。
这组 Amazon OA 的两道编程题差别很大。第一题要合并两个字符串,把冲突数量降到最低;第二题直接给一个电影项目,要求修好关注和通知功能。 第一题得先想清楚状态如何定义。到了第二题,还要找到功能入口、看懂数据如何传,再根据测试定位问题。只熟悉从空白编辑器写算法,碰到已有项目会有些不适应。
第一题:合并字符串,减少冲突
题意: 给两个字符串,在不改变各自字符先后顺序的情况下,把它们合并成一个字符串,并让冲突数量尽可能少。按截图中的例子,只要前面的字符比后面的字符大,就算一次冲突,统计的是所有这样的字符对,不仅是相邻字符。 思路: 用动态规划,记录两个串分别取了多少个字符时,最少有多少次冲突。每一步可以从任意一边取下一个字符,统计已经放进去的字符中有多少比它大,加上这些新增冲突,再比较两种选择,保留较小值。提前统计各个前缀的字母数量,就能快速计算新增冲突;这样也会把原来各串内部的冲突算进去,不需要另外重复累加。
第二题:关注与通知功能
题意: 按接口要求检查并补全关注和通知功能,让每个用户能管理自己的关注记录。电影创建或发布时,按照规定的触发条件给相关关注者生成未读通知,同时支持查询通知、统计未读数量,以及将通知标记为已读。 思路: 先对照说明检查数据模型和接口,弄清用户关注的对象,以及什么情况下需要发通知,再补齐关注关系的保存和查询逻辑。在电影创建或发布的对应位置找到接收用户,生成未读通知,并避免重复发送。查询、未读统计和标记已读都要限定当前用户,防止读到或改到别人的通知,最后检查重复关注、取消关注和重复触发通知等情况。
FAQ
冲突只算相邻字符吗?
不是。只要前面的字符更大,就要计数,中间隔着其他字符也一样。
两个原字符串内部的冲突能消除吗?
不能,因为各自的字符顺序必须保留。这部分是固定的,合并时优化的是两个串之间新增的冲突。
为什么第一题会超时?
检查是不是在每个 DP 状态重新扫描前缀。预处理字符数量后,每次转移都应直接查询新增代价。
通知列表正常,为什么未读数量还是错的?
两者不一定使用同一条查询。分别检查用户过滤条件和未读状态条件,不能只验证列表接口。
AI 建议的修改通过测试后,还要看什么?
检查有没有删除断言、修改期望值、写死测试数据或吞掉异常,再确认权限和接口格式没有被改坏。
参考来源
Reddit:Amazon OA 讨论,含字符串合并题与通知功能反馈 Cowinx:Amazon OA 字符串合并与 Movie DB 通知任务复盘 LinkedIn:Amazon Internship OA 与 MovieDB 仓库调试经历
联系 VOPathway
如果你希望把这套方法用于自己的 OA 或 VO 准备,可以把目标岗位、当前阶段、面试时间和主要难点发给 VOPathway,我们会据此安排针对性的练习与复盘。
- 微信:Coding0201
- 邮箱:[email protected]
- Telegram:@OAVOProxy
- WhatsApp:+86 178 6396 8105
可提供 OA辅助、OA辅导、VO辅助与 VO辅导。文章用于训练参考,不代表相关公司的官方流程;实际安排请以候选人收到的通知为准。
本文用于面试准备与训练复盘。公司名称仅用于标识题型素材主题,不代表官方合作或录用承诺。
预约一次训练复盘 ↗