分享|笔试题目分享
1712
2024.05.06
2024.05.07
发布于 未知归属地

衍复投资C++笔试

Q1

  对于一个字符串s,我们提出以下的压缩算法,将每个重复的字母以数字的形式进行转化。

例如:

  • 对于字符串abbcccdddd而言,压缩后的字符串为1a2b3c4d
  • 对于字符串aaaaaabxxaaaaa而言,压缩后的字符串为6a1b2x5a

现在给定数字K,你可以从字符串s中删除连续K个字母,你需要使得字符串压缩后的字符长度最短,请你返回最短的字符串长度。

  1. s = aaaaaabxxaaaaa, K = 3
    对于上述用例,删除字符串bxx,得到最短压缩后字符串aaaaaaaaaaa,表示为11a,返回3

Q2

  现在有一条长为N的道路,道路上分布着一些起重机,起重机的位置范围为0N-1,起重机有臂长,对于一个被起重机臂长覆盖的物体,起重机可以将它移动到臂长范围内的任意位置,给定数组AP,其中 A[i] 为第 i 个起重机的臂长, P[i] 为第 i 个起重机的位置,请你判断能否将物体从B位置移动到E位置,返回布尔值。

  1. A = [1, 1, 2], P = [3, 5, 6], B = 8, E = 2
    返回true,以下是运送方法:
    • 先用6处的起重机将物体从8运送到4
    • 再用3处的起重机将物体从4运送到2

Q4

  小牛找到了一些多米诺骨牌,骨牌被分成了两半,每一半上印有一到六之间的点数,现在一共有6块多米诺骨牌,小牛想知道能否将多米诺骨牌排成一个三层的金字塔。金字塔的第一层有三块多米诺骨牌,第二层有两块,第三层有一块。每一层多米诺骨牌都位于下一层的正中位置。对第二层和第三层的多米诺骨牌而言,每一块骨牌的两个点数都必须与下方骨牌对应的点数相同,小牛可以将骨牌旋转 180° 进行摆放,即一个 [1 2] 骨牌也可以摆放为 [2 1]。给定一个数组A,其中每两项代表一张多米诺骨牌的两个点数,如果小牛能将骨牌排成一个三层金字塔则返回Yes,否则返回No

  1. A = [1, 3, 4, 3, 4, 6, 6, 4, 6, 2, 2, 3]
    返回Yes,以下是一种搭建方法:
    反转骨牌[4 3]、[6 4]得到

屏幕截图 2024-05-06 144011.png

  1. A = [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6]
    返回No,无论如何也搭建不出三层金字塔。

Q5

  小马计划在一块地区建立风力发电设施,但是一些地块上有鸟类栖息,为了不破坏自然生态环境,给定K为安全距离,在与鸟类栖息地距离小于等于K的地块上不允许建立风力发电设施。(此处的距离为两个地块之间的横纵坐标的差的绝对值之和。),小马想知道最多能建造多少台风力发电设施,请返回结果。

  1. A = [[1, 0, 0, 0],[0, 0, 0, 1],[0, 0, 1, 0]], K = 1

[🐦❌⭕❌]
[❌⭕❌🐦]
[⭕❌🐦❌]

如图所示,最多能建造三台风力发电设施,返回3

评论 (8)