TCS NQT 编码问题以及如何在 TCS NQT 中评估编码任务
要了解有关 TCS NQT 的更多信息:TCS NQT – 国家资格测试
1.如何解决TCS NQT 2022中的编码部分?
逐步指导解决 TCS NQT 2022 中的编码部分。
第 1 步:理解故事给你 30 分钟的时间来编写程序并清除所有测试用例。其中,花前五到六分钟来理解给出的故事并弄清楚需要计算什么。如果你的英语不是很强,你需要花更多的时间阅读和理解任务。在您了解发生了什么之前,不要急于输入您的程序。
这些是您需要从任务中了解的要点。
- 有几种面额的硬币。
- 最初,每种类型的硬币都有偶数个。
- 其中一枚硬币丢失。当您从偶数中删除 1 时,我们得到一个奇数。所以,最后我们有许多面额出现偶数次,但一个特定面额出现奇数次。
- 我们得到的第一个输入是硬币的总数。我们称它为 N。
- 在第二行中,我们只得到 N-1 个值,因为其中一枚硬币丢失了。
- 输出是丢失硬币的面额(价值)。
第 2 步:读取输入一旦您知道需要什么,我们就需要考虑如何编写代码。目前我们不知道如何找到答案。但我们知道如何接受输入。因此,程序的第一部分是读取 N 的值,声明一个数组并将 N-1 个值读入数组。即使任务不断变化,在许多程序中都需要在循环中读取一组值。您将需要练习几个程序,这样您就不会在实际考试中像这样的简单任务上浪费时间。
第三步:破解核心逻辑
下一步是弄清楚如何将这些数据转换为答案。到考试的这一步时,我们应该还有大约 20 分钟的时间。让我们与时间赛跑。考虑问题中给出的示例。我们看到面额 Rs.2 出现了两次,Rs.1 出现了两次,Rs.5 出现了 3 次。为什么会这样?我们知道,最初所有这些都出现了偶数次。但是,其中一枚硬币丢失了,这是出现奇数次的数字。在这个例子中,我们可以推断出,最初有四枚 Rs 的硬币。 5个,但其中一个倒下了。这就是为什么我们最终有 3 个 5 卢比硬币而不是 4 个 5 卢比硬币。这是解决此问题的直接方法。在本文的结尾,我们将看到解决相同问题的更有效方法。
方法一:
- 任务 1:在循环中一次读取一枚硬币。取其价值。我们称其为 a[j]。
- 任务 2:在一个内部循环中,遍历列表中的每个硬币并计算 V 出现了多少次。为此,我们首先需要将计数初始化为零。每当 a[j] == a[i] 为真时,我们需要增加计数器。
- 任务3:一旦内循环完成,count的值会告诉我们a[i]在数组中出现了多少次。
- 任务 4:我们需要检查计数是否为奇数。我们被告知只有 1 个面额会出现奇数次。如果我们找到它,我们可以打印它并退出程序。
当我们将奇数除以 2 时,我们得到 1 作为余数。这可以使用 %运算符获得。
方法2:一旦我们意识到我们需要找到出现奇数次的数字,我们中的一些人可以想出另一种方法来识别它。此方法基于 EXOR 操作,它是使用 ^ 符号执行的按位操作。这是 XOR 操作的真值表。运算结果:
0 ^ 0 0
0 ^ 1 1
1 ^ 0 1
1 ^ 1 0
从上面的真值表中,我们可以得出结论 N ^ N = 0, 0 ^ N = N。假设我们有 3 个整数 A、B 和 C。以下是 EXOR 的一些有趣结果。
A^A=0
A^B^A = A^A^B = B
A^B^C^B^A^C = 0
- 因此,如果我们对一系列数字执行 EXOR 操作,我们会注意到一些有趣的结果。
- 如果一个特定的数字(比如 A)出现偶数次,则它们的 EXOR 加在一起为 0。即当该数字出现偶数次时,A^A^A...^A =0。
- 如果一个数字出现奇数次,则所有出现的 EXOR 与该数字本身相同。因此,当数字出现奇数次时,A^A^A^….^A= A。
- 我们应用 EXOR 操作的顺序无关紧要 A^B=B^A。
- 一起使用这些属性,我们可以注意到,当我们对所有输入进行 EXOR 时,任何出现偶数次的数字都会给出 EXOR 0。如果
- A 是出现奇数次的数字,其所有出现的总体 EXOR 将等于 A。所有其他数字的总体结果将为零。所以,最后我们得到A^0,它等于A。
一旦我们知道了这一点,我们就可以继续在代码中实现它。我们只需要取一个临时变量来存储结果。让我们称这个 E 并将其初始化为 0。然后我们需要通过一个循环并对所有给定元素执行 EXOR。 EXOR 的最终值就是我们需要的答案。 2. 什么是 TCS NQT 2022?
第 4 步:验证代码
考试的剩余时间可用于验证代码是否清除了所有测试用例。如果失败,您可以尝试提供自己的输入以找出失败的时间,然后尝试更正算法。在 TCS NQT 2022 中,如果您的代码很慢,您可能不会受到很大的惩罚。因此,在您担心效率之前编写工作代码是很有意义的。
TCS NQT 2022(https://learning.tcsionhub.in/hub/national-qualifier-test/) 是TCS为招聘2022年毕业的应届生而举办的考试。确保您了解资格标准对于测试,教学大纲和测试模式。
3. NQT 2022的编码部分是什么?
TCS NQT 2022 的编码部分有一个问题,通常采用案例研究或故事的形式。在 Caselet 结束时,他们会要求我们编写一个程序,该程序以特定格式接受输入并按照所需格式生成输出。 4. 编码部分的其他规则是什么?
您可以尝试使用 TCS 提供的 5 种语言中的任何一种进行编码任务。它们是 C、C++、 Java、 Python和 Perl。你总共有 30 分钟的时间来解决这个问题。在您尝试 TCS NQT 2022 的编码部分之前,需要了解以下最重要的几点。
5. 如何评估编码任务?
TCS NQT 2022 由数十万学生尝试。考官不会阅读每个人的代码。相反,他们将使用计算机化评估,该评估将仅根据输出自动分配分数。编码部分的主要部分是“测试用例”。您的代码将根据测试用例进行验证。根据清除的测试用例数量,您将获得部分分数。
6. 我需要让我的程序如此高效吗?
虽然编写高效的程序总是好的,但您需要控制自己的贪婪。在担心效率之前,您需要确保您的程序至少清除了一些测试用例。最后,没有人阅读你的代码——他们只看测试用例的数量。确保您的代码清除尽可能多的测试用例。但是,如果您知道一种有效的方法,那么您没有理由不使用它。来吧,给它最好的机会。这是你的游乐场。
7. 我应该用哪种语言编写代码?
与脚本语言相比,选择 C、C++ 和Java的优点是编译器非常严格。编译器发现任何错误的概率非常高,这意味着针对测试用例进行验证的概率也很高。另一方面,在Python或 Perl 等脚本语言中,编译器发现错误的可能性并不大。您的一些编码错误可能会渗透到您进入编译器阶段。正如我们一直在说的,现在不要尝试学习新的编程语言。坚持使用您已经知道的语言。通过使用它练习多项任务来建立您的信心。
8. 是否有必要针对测试用例进行验证?
TCS NQT 2022 引入了根据实际测试用例验证解决方案代码的功能。确保您的代码正在清除它们。继续调整它直到你完成。但是,在最后 2 分钟内,您需要确保您的代码是稳定的。停止进行任何进一步的更改。多读几遍你的代码,以确保你没有在兴奋中做任何愚蠢的事情。
9. 我在哪里可以得到更多这样的问题?
您可以按照本课程 TCS NQT 准备测试系列与我们一起为 TCS NQT 做好准备。