
这道题是 Bloomberg 26NG Superday 的 coding 题,核心是字符串扫描和状态维护,算法本身不复杂,但很考验临场表达。
题意确认(先问清楚)
我会先确认两个点:
- 括号串一定合法吗? 是的。
- 括号内部可能为空吗?
是的,例如
()。
这些确认能避免后面多写无用的异常处理。
改进后的面试话术(可直接说)
我会从左到右遍历字符串,维护三个状态:
depth:当前括号深度maxDepth:历史最大深度curr:当前层正在收集的子串(不含外层括号)
遍历规则:
遇到
'(': 先把depth加一,并开始新的更深层收集。因为更深层才可能产生更大的深度答案,所以当前层内容不再作为“更深答案候选”。遇到
')': 此时准备离开当前层。 如果当前depth > maxDepth,说明出现了更深层,先清空答案集合,再把curr放进去,并更新maxDepth。 如果当前depth == maxDepth,把curr追加到答案集合。 然后清空curr,depth减一。其他普通字符: 追加到
curr。
最后返回所有最大深度对应的子串(按题目要求决定是返回数组、拼接字符串还是只返回一个)。
复杂度
- 时间复杂度:
O(n) - 空间复杂度:
O(n)(答案与临时子串)
容易踩坑的点
- 把“当前深度”和“历史最大深度”更新顺序写反
- 新最大深度出现时忘记清空旧答案
- 忘记支持空子串
() - 误把外层括号也拼进答案内容
3 个常见 BQ(Bloomberg Superday 可用)
BQ1:讲一个你在高压下快速定位并修复问题的例子
回答结构:
- 背景:线上或项目关键节点出现异常
- 动作:先止损,再最小化复现,最后修复并补监控
- 结果:恢复时间、影响范围、后续预防
BQ2:讲一次你和队友意见不一致,最后怎么推进
回答结构:
- 冲突点:方案 A vs 方案 B 的核心分歧
- 动作:对齐目标,列评估指标,小规模验证
- 结果:用数据决策,并沉淀成团队规范
BQ3:讲一个你主动提升系统/流程效率的例子
回答结构:
- 识别到的低效点
- 你设计并落地的改进
- 可量化收益(时间、人力、错误率)
总结
这题本质是“单次扫描 + 状态机思维”。在 Bloomberg 这类面试里,写对代码只是第一步,更关键的是你能否把状态变化和边界条件讲清楚。
如果你也在准备 Bloomberg / Google / Amazon 的 OA 或 VO,欢迎交流。
#bloomberg #superday #vo #北美求职 #sde求职 #ng求职 #北美找工 #转码
延伸阅读(外链)
需要面试真题? 立刻联系微信 Coding0201,获取真题。
联系方式
Email: [email protected]
Telegram: @OAVOProxy