Sapient – 为德里地铁设计智能卡系统的编码练习
大家好,
今天我要和sapient分享面试经验
第 1 轮:接到 HR 的电话和初步筛选。
我接到了 HR 的电话,在与开幕式讨论之后,我接到了 sapient 的电话,要求进行技术电话轮次。
有一些Java基本问题,如抽象、继承和自定义异常以及一些多线程问题。
第二轮:机器测试
在第二轮中,我接到了机器测试的电话,他们为我提供了从家里接送的出租车,这太棒了。
他们为我提供了以下要求的编码挑战。
需求范围
- 开发一个 API 来计算给定站点的总进出(刷入 + 刷出)
- 按需生成每张卡报告的 API,即打印给定智能卡的所有旅程详细信息——源站、目的地站、旅行日期和时间、余额、票价等。
详细的问题陈述
德里地铁设计智能卡系统的编码练习。为德里市实施“地铁智能卡系统”(MSCS)。对于应用,假设有一条地铁线线性覆盖 10 个车站。站点名称为 A1、A2、A3、A4、A5、A6、A7、A8、A9、A10,如下所示。行程可以是任何方向。
旅行者拥有智能卡,其行为与购买时具有初始余额的任何普通借记卡一样。旅客进入地铁站时刷卡,离开时刷卡。刷卡时卡余额会自动更新。
练习的目标是创建一个具有以下功能的自动化系统:
- 刷卡时卡的最低余额应为 5.5 卢比。在刷卡时,系统应根据在一天开始时设置的以下策略计算票价。票价必须从卡中扣除。
- 卡应有足够的余额,否则用户将无法退出。工作日 - 卢比。 7 *(经过的车站数量)周末 - 卢比。 5.5 *(周六或周日行驶的车站数量)(*未来可能会有更多这样的票价策略)
解决方案:
https://drive.google.com/open?id=1CmvnqTIJgpVNc1H4FQpX0LNu_2yQ4rD2
第三轮:代码审查轮+总决赛
在最后一轮中,他们问了我所有与我编写的编码程序相关的问题。由于我在编码挑战中使用了许多设计模式,他们问了我许多与设计模式相关的问题。
当他们正在寻找可以在Java和 UI 上工作的Java开发人员时,他们向我询问了Java、Spring、Hibernate、JDBC、Css、Html、Javascript、Shell 脚本。
最后我被选入 Sapient Global Market 🙂
当我在家里被选中时,我得到了鲜花花束。