📜  Infosys 面试经历 | HackWithInfy SES(1)

📅  最后修改于: 2023-12-03 14:42:06.700000             🧑  作者: Mango

Infosys 面试经历 | HackWithInfy SES

介绍

HackWithInfy SES是Infosys针对在校学生举办的全球性编程挑战赛。目的是帮助有抱负的年轻人在技术上获得突破,并在Infosys内部寻找人才。本次比赛难度较高,挑战题目设计很有深度,测试了我们的算法设计能力和编程技能。

总结

HackWithInfy SES是我参加过的挑战赛中最难的一次,也是最有收获的一次。比赛完结后,在评分标准下我得了相当不错的分数。感谢Infosys的这次机会,充实并启示了我的职业生涯。

经历

参加HackWithInfy SES的过程非常有趣,这里是我的经历:

第一轮

第一轮我们从10000多个参赛者中脱颖而出。我的第一轮题目是一个和字符串有关的问题。主要考察面向对象编程(OOP)的理解,还要有很强的编程思维能力。

  • 测试样例
>>> s = StringManipulator("hello world", 2)
>>> s.get()
>>> 'lo wrd'
第二轮

在第二轮中,我们的任务是设计动态编程(DP)方案来解决一个更复杂的问题。这个问题很有挑战性,需要考虑许多边界条件和特殊情况。我的任务是设计一个切割平面的方案,使得面积最大。

  • 测试样例
>>> points = [(0, 0), (0, 10), (10, 10), (10, 0)]
>>> cuts = 1
>>> find_maximum_area(points, cuts)
>>> 25.0
第三轮

第三轮测试我们对数据结构和算法的理解,需要谨慎分析数据之间的密度和相似性。我的任务是创造一个数据结构,用于快速查找任意给定时间点的最高价格。

  • 测试样例
>>> stock_prices = [
...     (1609459200, 45.0),
...     (1609545600, 46.0),
...     (1609718400, 47.0),
...     (1609804800, 44.5),
...     (1609891200, 44.5),
... ]
>>> q = QuoteProcessor(stock_prices)
>>> q.get_max_price(1609804800)
>>> 47.0
面试准备

HackWithInfy SES的面试准备需要掌握数据结构和算法相关知识。我们可以选择用Python, C++, Java等任何编程语言来提交我们的代码解决问题。

  • 知识准备

掌握数据结构和算法相关知识,如树、图、递归、分治、贪心、动态规划等。

  • 解题流程

在HackWithInfy SES中,我们需要完成以下流程:

  1. 阅读题目及样例;
  2. 分析并解决问题;
  3. 编写相应代码前,设计解决方案并考虑边界条件;
  4. 编写代码并提交。
  • 实际操作

我们可以在豪华的编程社区Leetcode上练习,更多优秀的题目可以让我们更好的掌握数据结构和算法知识。

# LeetCode 20. 有效的括号
# 验证括号是否有效,并返回true/false
def isValid(self, s: str) -> bool:
    stack = []
    parentheses = {")": "(", "]": "[", "}": "{"}
    for c in s:
        if c in parentheses.values():
            stack.append(c)
        elif c in parentheses.keys():
            if not stack or parentheses[c] != stack.pop():
                return False
        else:
            return False
    return not stack
结尾

HackWithInfy SES结束后,我注意到我的基础知识得到了提高,对全球编程挑战比赛的参与也有了充分的准备。如果您也是一名程序员,并且想要寻找机会提高自己的能力,那么我强烈建议您参加这样的比赛。它们可以帮助我们提高我们的技能,加深我们对编程的理解,最终成为更好的程序员。