近期笔试记录
上海人工智能实验室-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 ≤ 1000
1 ≤ 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 ...