GOCC14:2020 年 Google 在线编码挑战赛 – 新毕业生(印度)
2020年2021届大学生谷歌在线挑战赛于2020年8月22日举行。在此轮之前,根据您的简历进行了一些入围。
测试在 HackerEarth 平台上进行。该测试包括两个编码问题,分配的时间为 60 分钟。下面提到了我的一系列问题。
- 第一个问题:给你一个字符串S(只有小写英文字母)。在一个操作中,您可以从字符串S 中删除子字符串“pr”并获得金额 X,或者您可以删除子字符串“rp”并获得金额 Y。
如果您以最佳方式执行零个或多个此类操作,请找到您可以获得的最大数量。
笔记 :
- 字符串被定义为 S 中连续的字符序列。
- 删除“pr”或“rp”后,剩余字母的顺序应保持不变。
例子:
abppprrr (string S)
5 4 (value of X and Y )
输出:
15
解释 :
在这里,S =” abppprrr”
X = 5,Y = 4。
提到了删除子字符串:
删除“pr”,新字符串S=”abpprr”。
删除“pr”,新字符串S=”abpr”。
删除“pr”,新字符串S=””。
总共我们删除了 pr 3 次,所以总分是 3*X + 0*Y = 3*5 =15。
- 第二个问题:给定一个包含 N 个整数的数组 A 和另一个包含 M 个整数的数组 B(不一定不同)。任务是找到要在 B 中添加的最小元素数,以便 A 成为 B 的子序列。注意,您可以在 B 中的任何位置添加元素。
子序列是可以通过从序列中删除一些元素或不删除元素而不改变剩余元素的顺序来派生的序列。
例子:
5 6 ( size of A array and B array)
1 2 3 4 5 ( A array )
2 5 6 4 9 12 ( B array )
输出:
3
解释:我们需要在 B 中添加 3 个数字,使得 A 成为 B 的子序列。
我们在 B 的开头添加了 1,在 2 和 5 之间添加了元素 3、4。现在数组 B 变为 [ 1 , 2, 3, 4 , 5, 6, 4, 9, 12] 并且 A 是 B 的子序列。