📜  TCS 数字面试体验(通过 Codevita 2019)(1)

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

TCS 数字面试体验(通过 Codevita 2019)

本文将会介绍我在 TCS Codevita 2019 数字面试中的体验。

简介

TCS Codevita 是 TCS 公司举办的面向全球的编程竞赛,旨在发现和培养程序员的编程能力和团队合作精神。这项竞赛分为两个阶段:数字面试和编程竞赛。在数字面试阶段中,考生需要在 vTest(TCS 平台)上通过编程相关的题目和选择题进行筛选。最终通过的考生将有机会进入编程竞赛的下一轮。

面试体验

我在 TCS Codevita 2019 中通过了数字面试测试。以下是我的一些体验和建议:

准备工作

在数字面试前,我准备了以下材料:

  1. 一台稳定的计算机和互联网连接。
  2. 一份简历和一份自我介绍稿。
  3. 一些筛选性题目的解答,如 Hackerrank。
题目

在数字面试中,我碰到了一些选择题和编程题。其中选择题比较简单,主要考查基本编程知识和算法。编程题则更加复杂,需要使用多种算法和数据结构进行解决。

以下是一道数字面试中的编程题(题目不完整):

给出一个大小为N的数组,其中的元素是正整数。请找出一个最长的连续子序列A,使得其的和能被M整除。输出这个子序列的长度。

输入:第一行是一个正整数T,表示测试数据的组数。每组数据的第一行包含两个正整数N和M(1<=N,M<=10^5)。接下来一行是N个用空格隔开的正整数,表示数组的元素。

输出:对于每一组数据,输出一个正整数,表示最长连续子序列的长度。

对于这个问题,我使用了前缀和和哈希表等知识点。代码如下:

for _ in range(t):
    n, m = map(int, input().split())
    nums = list(map(int, input().split()))
    cum_sum = 0
    mod_dict = {0: -1}
    max_len = 0
    for i in range(n):
        cum_sum = (cum_sum + nums[i]) % m
        if cum_sum in mod_dict:
            max_len = max(max_len, i - mod_dict[cum_sum])
        else:
            mod_dict[cum_sum] = i
    print(max_len)
总结

通过 TCS Codevita 2019 的数字面试,我学习并掌握了许多有用的编程知识和技巧。同时,我也认识到了自己还需要努力改进的方面。对于那些准备参加 TCS Codevita 的人来说,我的建议是充分准备,熟练掌握基本编程知识和算法,并保持自信和冷静。