近期笔试记录

上海人工智能实验室-2026届秋招-算法1013

给定一个长度为 n 的字符串 s(下标从 1 开始),仅由大小写英文字母组成。保证 n 为偶数。定义如下“扩散”过程:

  • 总共进行 n 次操作。初始时,阴阳盘处于“阴”的状态;
  • i 次操作访问的位置 p 的确定方式如下: 若 i 为奇数,则 p = n/2 - floor(i/2);若 i 为偶数,则 p = n/2 + i/2;
  • 随后,根据 s_p 的大小写与阴阳盘当前状态进行修改。此修改规则与操作次序 i 的奇偶性无关: 若阴阳盘为“阴”且 s_p 为小写字母,则将 s_p 改为对应大写字母,并将阴阳盘切换为“阳”;若阴阳盘为“阳”且 s_p 为大写字母,则将 s_p 改为对应小写字母,并将阴阳盘切换为“阴”;其他情况下,不作任何修改,阴阳盘状态保持不变。

请输出全部操作结束后得到的字符串。

【名词解释】floor(x) 代表对 x 进行下取整操作。

输入描述第一行输入一个整数 n (1 ≤ n ≤ 2 × 10^5) 表示字符串长度。保证 n 为偶数。第二行输入一个长度为 n 的字符串 s,仅由大小写英文字母组成。

输出描述输出一个长度为 n 的字符串,表示所有操作结束后的结果。

示例 1输入:

6
abcDEF

输出:

ABCdef

说明样例解释:

  • 访问顺序为 p = 3, 4, 2, 5, 1, 6
  • 步骤 1:s_3 = 'c' 为小写且盘为“阴”,改为 'C',盘变“阳”;
  • 步骤 2:s_4 = 'D' 为大写且盘为“阳”,改为 'd',盘变“阴”;
  • 步骤 3:s_2 = 'b' 为小写且盘为“阴”,改为 'B',盘变“阳”;
  • 步骤 4:s_5 = 'E' 为大写且盘为“阳”,改为 'e',盘变“阴”;
  • 步骤 5:s_1 = 'a' 为小写且盘为“阴”,改为 'A',盘变“阳”;
  • 步骤 6:s_6 = 'F' 为大写且盘为“阳”,改为 'f',盘变“阴”。

最终结果为 ABCdef

第二题:

好的,这是从图片中识别出的题干内容:

上海人工智能实验室-2026届秋招-算法1013

“发光二极管 发光二极管简称为 LED。由镓(Ga)与砷(As)、磷(P)的化合物制成的二极管,当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管,在电路及仪器中作为指示灯,或者组成文字或数字显示。磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光。它是半导体二极管的...”

在一次实验课上,牛牛想知道数字 N 中,共有几个二极管组成(由发光二极管组成的 0 \sim 9 数字如图所示)。

![七段数码管示意图](图中展示了数字 0 到 9 在七段数码管上的标准显示形态)

输入描述在一行中输入 T,表示 T 组数据。接下来 T 行,每行输入一个 N,表示由二极管表示的数字。

约束条件

  • 1 \le T \le 10000
  • 0 \le N \le 10^{1000}

输出描述输出数字 N 需要几个发光二极管构成。

示例 1输入:

3
1
2
3

输出:

2 leds
5 leds
5 leds

解题思路说明:

这道题的核心是根据七段数码管的显示规则,计算每个数字需要点亮多少个“段”(即发光二极管)。根据图示和常识,我们可以确定每个数字 09 所需的段数:

  • 0: 6 段 (上、左上、右上、左下、右下、下)
  • 1: 2 段 (右上、右下)
  • 2: 5 段 (上、右上、中、左下、下)
  • 3: 5 段 (上、右上、中、右下、下)
  • 4: 4 段 (左上、右上、中、右下)
  • 5: 5 段 (上、左上、中、右下、下)
  • 6: 6 段 (上、左上、中、左下、右下、下)
  • 7: 3 段 (上、右上、右下)
  • 8: 7 段 (全部)
  • 9: 6 段 (上、左上、右上、中、右下、下)

因此,解题步骤如下:

  1. 定义一个数组或字典 leds,其中 leds[i] 存储数字 i 所需的二极管数量。
  2. 读取测试用例数量 T
  3. 对于每一个测试用例,读取数字 N(由于 N 可能非常大,应将其作为字符串处理)。
  4. 遍历 N 的每一位数字字符,将其转换为整数,并累加对应的二极管数量。
  5. 输出总和,并按要求格式化为 “X leds”。

例如,对于输入 123

  • 数字 1 需要 2 个 LED。
  • 数字 2 需要 5 个 LED。
  • 数字 3 需要 5 个 LED。
  • 总计:2 + 5 + 5 = 12,输出 12 leds

金山WPS——1013

题目一:正则表达式匹配

题干描述:请实现一个函数用来匹配包括 '.''*' 的正则表达式。模式中的字符 '.' 表示任意一个字符,而 '*' 表示它前面的字符可以出现任意次(包含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。

例如,字符串 "aaa" 与模式 "a.a""ab*ac*a" 匹配,但与 "aa.a""ab*a" 均不匹配。

数据范围:

  1. str 只包含从 a-z 的小写字母。
  2. pattern 只包含从 a-z 的小写字母以及字符 '.''*',无连续的 '*'
  3. 1 ≤ str.length ≤ 1000
  4. 1 ≤ pattern.length ≤ 1000

输入描述第一行输入一个字符串 str。第二行输入一个字符串 pattern

输出描述输出两个字符串的匹配结果,如果匹配则输出 true,否则输出 false

示例 1输入:

aaa
a*a

输出:

true

题目二:生成器 (GAN)

题干描述:生成器是生成对抗网络(GAN)中的关键组件,负责生成假数据。请实现一个简单的生成器,能够根据输入的随机噪声生成假数据样本。

数据从正态分布中随机生成,生成的真数据加上随机噪声,就变成了假数据。

输入描述

  • 第一行包含两个整数 ND,表示生成的样本数量和特征数量。
  • 接下来的 N 行,每行包含 D 个随机噪声值,用空格分隔的浮点数表示,表示生成数据要加的特征值。
  • 接下来 N 行,每行包含 D 个浮点数,表示真实数据。

输出描述

  • 输出生成器生成的假数据样本,每个样本以空格分隔。
  • 返回结果保留两位小数。

补充说明支持 numpy, scipy, pandas, scikit-learn 库。

示例 1输入:

1 5
-0.04 -0.75 0.3 0.36 -0.07
0.5 -0.14 0.65 1.52 -0.23

输出:

0.46 -0.89 0.95 1.88 -0.3


科大讯飞

好的,这是从图片中识别出的两个题目:

题目一:完美数

题干描述:给定一个正整数的二进制表示(不含前导0)中,1的个数为 n,0的个数为 m。若满足 m = n,则称该整数为完美数

现给定一个整数 x,请找出大于等于 x 的最小完美数。

【名词解释】

  • 二进制表示:二进制表示指将一个正整数按基数2形式书写,不含前导零。例如,5 的二进制表示为 (101)₂
  • 完美数:完美数指其二进制表示中1的个数与0的个数相等。

输入描述每个测试文件均包含多组测试数据。第一行输入一个整数 T (1 ≤ T ≤ 10⁵) 代表数据组数。每组测试数据描述如下:每行输入一个整数 x (1 ≤ x ≤ 10⁹)

输出描述对于每一组测试数据,新起一行。输出一个整数,表示不小于 x 的最小完美数。

示例 1输入:

6

(注:根据上下文,这应该是第一组数据,完整的输入应包含 TTx 值)

题目二:单败淘汰赛

题干描述:给定一个长度为 n = 2^k 的整数数组 s 表示 n 支队伍的能力值,按初始顺序编号为 1, 2, ..., n。你位于第 1 位(即队伍 1)。

比赛采用单败淘汰制。每一轮中,按当前顺序相邻两队进行对决:(1, 2), (3, 4), (5, 6), ...,能力值较高者胜出并按原相对顺序进入下一轮。重复该流程,直到仅剩一支队伍为止。

定义每场对决都由能力值较高的队伍获胜;为保证胜负唯一,保证所有队伍的能力值两两不同。

请计算你(队伍 1)在整个淘汰赛中将获胜的总场次;若你在首轮即被淘汰,则胜场为 0。当 n = 1 时,你无需比赛,胜场为 0。

输入描述每个测试文件均包含多组测试数据。第一行输入一个整数 T (1 ≤ T ≤ 10⁵) 表示数据组数。每组测试数据描述如下:第一行输入一个整数 n,保证 n (1 ≤ n ≤ 10⁵) 是 2 的整次幂;第二行输入 n 个两两不同的整数,表示数组 s₁, s₂, ..., sₙ (0 ≤ sᵢ ≤ 10⁵)。可保证所有测试中 n 的总和不超过 2 × 10⁵

输出描述对于每组测试数据,输出一行,一个整数,表示你将获得的胜场数。

示例 1输入:(图片中未显示完整示例,但根据题意,输入会是类似以下格式)

T
n
s1 s2 ... sn
...

华为笔试

全部评论

相关推荐

10-11 15:57
门头沟学院 Java
点赞 评论 收藏
分享
10-11 17:48
已编辑
仲恺农业工程学院 Web前端
kabuu:问多了怕遇到聪明人坑不了了,说不定里面很坑呢,还是相信自己的选择吧
点赞 评论 收藏
分享
昨天 13:49
南京大学 财务
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务