Microsoft OA 中等难度题解析|Session Token 设计 + 字符串操作题思路拆解

24次閱讀
No Comments

最近这波大厂 OA 确实有点密集,尤其是 Microsoft、Google、TikTok、Amazon 都在疯狂发题。微软这套我刚做完,整体难度属于中等偏上,不是那种纯模板题,但也没有特别刁钻,核心还是考察数据结构理解 + 代码实现稳定性。下面把这次的两道题整理一下,给准备 Microsoft OA 的同学一个参考。

Q1:字符串最大操作次数

字符串最大操作次数

题意:每次可以选三个连续字符 s[i], s[i+1], s[i+2],如果前两个相等,且第三个不同,就把第三个改成和前两个一样。问最多能操作多少次。

思路:一旦出现两个连续相同字符,它们就可以“向右扩散”,把后面不同的字符一个个变成一样。也就是说,每一段长度 ≥2 的连续相同字符,都可以不断吞掉右边不同的字符,直到遇到新的连续块。所以本质是在统计:有多少字符可以被前面的“连续块”同化。可以从左往右遍历,记录当前连续相同字符的长度,如果长度 ≥2 且后面字符不同,就可以进行一次操作,并把连续长度继续扩展。

Q2:Session 认证系统

Session 认证系统

题意:就是实现一个带过期时间的 token 系统。每个 token 生成时有一个过期时间 = 当前时间 + TTL。支持三个操作:生成、续期、查询当前没过期的数量。关键点在于:在同一时间点,必须先判断哪些 token 已经过期;如果过期时间刚好等于当前时间,也算过期,不能续期也不能计数。

思路:用一个哈希表存 token_id -> 过期时间。每次操作时,先把所有过期的删掉(或者在访问时判断是否过期)。generate 就直接写入新的过期时间;renew 只有在 token 存在且没过期时才更新过期时间;count 就统计当前没过期的个数。

大厂 OA 冲刺建议

如果你最近在刷 Microsoft、Google、TikTok、Amazon 的 OA,一定要把重心放在“稳定度”上,而不是只追求做出来。边界条件必须练熟,过期判断、下标越界、复杂度控制这些细节不能丢;同时要模拟真实考试节奏,把自己压在限时环境里训练,目标是 30 分钟内稳定 AC,而不是反复 debug。现在很多 OA 真正拉开差距的,不是会不会,而是稳不稳。如果你卡在某类题型,或者想拿到更多最新真题整理、做高强度模拟,甚至需要 实战辅助支持 ,都可以联系我们,一对一帮你把节奏和通过率一起拉上来。

author avatar
Jory Wang Amazon资深软件开发工程师
Amazon 资深工程师,专注 基础设施核心系统研发,在系统可扩展性、可靠性及成本优化方面具备丰富实战经验。 目前聚焦 FAANG SDE 面试辅导,一年内助力 30+ 位候选人成功斩获 L5 / L6 Offer。
正文完
 0