📜  谷歌SWE实习2021面试经历

📅  最后修改于: 2021-11-17 07:53:46             🧑  作者: Mango

嗨极客们,我已经申请了 2021 年 Google SWE 实习(印度),并且我被选中并被邀请参加 Google 的在线挑战赛

申请:我是通过 LinkedIn 申请的,这真的是一个很好的机会平台,我在 2020 年 8 月 12 日收到了来自 Google 的邮件,这对我来说是一次很棒的经历。

我在这里分享在编码挑战中提出的问题。我希望我会帮助你。

第1轮:

问题 1:数组查询:给定一个长度为 N 的整数数组,您必须对给定的数组执行以下五种类型的查询:

  1. 左:执行一次循环左旋。
  2. 右:执行一次循环右旋。
  3. 更新 Pos 值:更新索引 Pos处的值 Val的数组。
  4. Increment Pos:将数组的索引 Pos处的值增加 1。
  5. Pos:在索引 Pos处打印当前值。

考虑到基于 1 的索引执行所有查询。

笔记:

  • 一次循环向左旋转将 ( arr 1 , arr 2 , arr 3 , . . , arr N-1 , arr N ) 更改为 ( arr 2 , arr 3 , . . .arr N-1 , arr N , arr 1 )。
  • 一次循环向右旋转将(arr 1 , arr 2 , arr 3 , . . , arr N-1 , arr N ) 更改为 (arr N , arr 1 , arr 2 , arr 3 , . . .arr N-1 )

输入格式

  • 第一行包含一个整数N,表示数组的长度。
  • 第二行包含N 个空格分隔的整数,表示数组的元素。
  • 第三行包含一个整数Q,表示查询的数量。
  • 接下来, Q行包含所描述的查询类型。

输出格式:对于类型 5 的每个查询,在新行中打印输出。

约束

2 ≤ N ≤ 5 x 105
2 ≤ Q ≤ 5 x 105
1 ≤ Pos ≤ N
0 ≤ arri , Val ≤ 105

保证至少有一个查询是类型5

样本输入 1

10
0 3 3 8 0 6 9 3 2 8
10
Increment 3
Increment 1
Left
Increment 5
Left
? 9
Right

示例输出 1

1
9

问题 2:字典中有 N 个单词,每个单词的长度都是固定的 M,并且仅由小写英文字母组成,即 ( ‘a’, ‘b’, ……. ‘z’ )。

Q表示的查询词。M中查询词的长度。这些词包含小写英文字母,但在某些地方而不是’a’,’b’,……之间的字母。 ‘z’ 有 ‘?’ . 请参阅示例输入部分以了解这种情况。

Q 的匹配计数,用match_count(Q)表示,是字典中单词的计数 并且在与查询词Q中的字母相同的位置包含相同的英文字母(不包括可以在?位置的字母)。

换句话说,字典中的单词可以在位置“?”处包含任何字母。但剩余的字母必须与查询词匹配。

给你一个查询词 Q,你需要计算match_count(Q)。

输入格式

  • 第一行包含两个空格分隔的整数MN,分别表示字典中的单词数和每个单词的长度。
  • 接下来的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?

样本输出

2
2
4
2