Google 2021 年实习生(印度)体验在线挑战赛
我在谷歌的职业页面上看到了一个职位发布,所以我申请了谷歌实习,但没有任何希望,因为我来自三级大学。但几天后,我收到了一封关于测试链接和其他凭据的电子邮件。
那么,让我们谈谈编码测试。
编码测试是在HackerEarth 上进行的,它由2 个问题组成,一个简单,另一个有点棘手。我们有60 分钟的时间来解决这些问题。我解决了这两个问题。所以,问题是这样的:
问题 1:未指定的单词
问题陈述:字典中有 N 个单词,每个单词的长度固定为M ,并且仅由小写英文字母组成,即 ('a', 'b', 'c', ………'z')。
查询词用Q表示。查询词的长度是M 。这些单词包含小写英文字母,但在某些地方,'a','b'......'z'之间的字母不是'?'。请参阅示例输入部分以了解这种情况。
Q的匹配计数,用match_count(Q)表示,是字典中包含与查询词Q中有字母。换句话说,字典中的单词可以包含'?'位置的任何字母。但其余字母必须与查询词匹配。
你得到一个查询词Q并且你需要计算match_count 。
输入格式:
- 第一行包含两个空格分隔的整数N和M分别表示字典中的单词数和每个单词的长度
- 接下来的N行包含字典中的每个单词。
- 下一行包含一个整数Q表示您必须计算match_count的查询词的数量,
- 接下来的 Q 行每行包含一个查询词。
输出格式:对于每个查询单词,在新行中为特定单词打印match_count 。
约束:
1<=N<=5 x 104
1<=M<=7
1<=q<=105
样本输入:
5 3
cat
map
bat
man
pen
4
?at
ma?
?a?
??n
样本输出:
2
2
4
2
问题二:异或查询
问题陈述:我不记得实际的陈述,但它就像我们得到一个具有单个元素的数组,即 0,然后,我们有一些查询是 2 种类型:
- 类型 1:将给定元素插入数组
- 类型 2:将数组中存在的所有元素与给定元素进行异或。
输入格式:
- 一个整数Q ,表示将要询问的查询数
- Q行有两个整数n和m
- n表示操作的类型,即1或2
- m表示将用于根据给定操作类型进行操作的元素。
输出格式:按排序顺序打印所有给定查询后的最终数组。
约束
1<=Q<=107
n = 1 or 2
1<=m<=109
样本输入:
6
1 3
1 5
2 5
1 6
1 7
2 6
样本输出:
0 0 1 6
这是一次非常棒的经历,现在我正在等待一些好消息。