近期笔试记录
上海人工智能实验室-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
“发光二极管 发光二极管简称为 。由镓(
)与砷(
)、磷(
)的化合物制成的二极管,当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管,在电路及仪器中作为指示灯,或者组成文字或数字显示。磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光。它是半导体二极管的...”
在一次实验课上,牛牛想知道数字 中,共有几个二极管组成(由发光二极管组成的
数字如图所示)。

输入描述在一行中输入 ,表示
组数据。接下来
行,每行输入一个
,表示由二极管表示的数字。
约束条件
输出描述输出数字 需要几个发光二极管构成。
示例 1输入:
3 1 2 3
输出:
2 leds 5 leds 5 leds
解题思路说明:
这道题的核心是根据七段数码管的显示规则,计算每个数字需要点亮多少个“段”(即发光二极管)。根据图示和常识,我们可以确定每个数字 0 到 9 所需的段数:
0: 6 段 (上、左上、右上、左下、右下、下)1: 2 段 (右上、右下)2: 5 段 (上、右上、中、左下、下)3: 5 段 (上、右上、中、右下、下)4: 4 段 (左上、右上、中、右下)5: 5 段 (上、左上、中、右下、下)6: 6 段 (上、左上、中、左下、右下、下)7: 3 段 (上、右上、右下)8: 7 段 (全部)9: 6 段 (上、左上、右上、中、右下、下)
因此,解题步骤如下:
- 定义一个数组或字典
leds,其中leds[i]存储数字i所需的二极管数量。 - 读取测试用例数量
T。 - 对于每一个测试用例,读取数字
N(由于N可能非常大,应将其作为字符串处理)。 - 遍历
N的每一位数字字符,将其转换为整数,并累加对应的二极管数量。 - 输出总和,并按要求格式化为 “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" 均不匹配。
数据范围:
str只包含从a-z的小写字母。pattern只包含从a-z的小写字母以及字符'.'和'*',无连续的'*'。1 ≤ str.length ≤ 10001 ≤ pattern.length ≤ 1000
输入描述第一行输入一个字符串 str。第二行输入一个字符串 pattern。
输出描述输出两个字符串的匹配结果,如果匹配则输出 true,否则输出 false。
示例 1输入:
aaa a*a
输出:
true
题目二:生成器 (GAN)
题干描述:生成器是生成对抗网络(GAN)中的关键组件,负责生成假数据。请实现一个简单的生成器,能够根据输入的随机噪声生成假数据样本。
数据从正态分布中随机生成,生成的真数据加上随机噪声,就变成了假数据。
输入描述
- 第一行包含两个整数
N和D,表示生成的样本数量和特征数量。 - 接下来的
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
(注:根据上下文,这应该是第一组数据,完整的输入应包含 T 和 T 个 x 值)
题目二:单败淘汰赛
题干描述:给定一个长度为 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 ...
华为笔试
26秋招算法笔试
查看11道真题和解析