大家好,希望你一切都好。今天我将分享我的初级Python工程师职位的 innovaccer 面试经历。希望它可以帮助您准备下一次编码面试。因此,事不宜迟,让我们开始吧。
我通过 Linkedin 工作门户申请了该职位。 3 天后,我接到了 HR 团队的介绍电话,他们安排了对拥有 3.5 年以上经验的 SDE-2 的技术面试。
第一轮:我们从自我介绍开始。
- 他让我写下伪代码,看看一个词是否可以是回文。我最多可以从中删除一个字符。 (简单)。
- 下一个问题是关于二分搜索。 https://www.geeksforgeeks.org/search-in-row-wise-and-column-wise-sorted-matrix/。我们讨论了二进制搜索和优化代码。
- 面向对象的问题:
Python3
class A: def __init__(self): print("from A") class B: def __init__(self): print("from B") class C(A, B): def __init__(self): super().__init__() print("from C") c = C()
他问我,他也想打印B。 Ans:再叫super。
- 系统设计基础:单体架构和微服务架构的区别。在什么情况下我们使用微服务,在什么情况下我们使用单体。
- Django 中的中间件。
- 缓存的基础知识。
第二轮:
- 股票利润最大化问题(1 笔交易和无限笔交易)。
- 数据库索引,索引的类型,缺点,一般使用什么数据结构来实现索引。我回答 B+ 树,因为插入和检索可以在 O(logn) 中发生。棘手的问题:那么为什么我们不能使用 hashmap,因为它在 O(1) 上运行。所以我回答说:读写操作之间总是要权衡的。是的,Hashmap 提供 O(1) 中的检索,但这完全取决于哈希函数,并且写入操作将变得昂贵。而且,很多公司使用 mongo/no-sql db 进行大数据分析等操作。我们也可以有不同的数据库用于不同的目的。
- 系统设计基础。
第 3 轮:
- 与美国总部总监进行技术管理回合。
- 关于项目的管理问题、挑战、我面临的困难、在特定情况下你会做什么等。