8.29 哔哩哔哩笔试面经 - 编程题 & 题解
笔试系统:牛客网
投递岗位:2024后端开发
题目类型:9 道单选 (2分或3分每题)+ 11道多选 (3分每题)
3道大题(1道 SQL 10分, 2道编程题 每题20分) 共 50分
UP主筛选 (10分)
请在UP主视频数据表中,筛选发布视频平均时长大于300秒的UP主,按UP主视频平均时长倒序,视频ID升序,返回第3行到6行的视频ID。
输入
CREATE TABLE `uploader_video_record` (
`video_id` bigint PRIMARY KEY,
`uploader_id` bigint,
`video_duration` int
);
INSERT INTO `uploader_video_record`
VALUES
(1, 101, 60),
(2, 102, 600),
(3, 103, 310),
(4, 101, 120),
(5, 104, 3200),
(6, 102, 330),
(7, 103, 290),
(8, 105, 290),
(9, 101, 180),
(10, 103, 320);
输出
video_id
6
3
7
10
说明
UP主视频数据表中,发布视频平均时长大于300秒的UP主ID为102、103、104。将这些UP主对应视频数据,按UP主视频平均时长倒序、视频ID升序,取第3行到6行的视频ID为6、3、7、10。
题解
SELECT video_id
FROM (
SELECT
video_id,
uploader_id,
video_duration,
(SELECT AVG(video_duration) FROM uploader_video_record sub WHERE sub.uploader_id = main.uploader_id) AS avg_duration
FROM uploader_video_record main
) AS avg_data
WHERE avg_duration > 300
ORDER BY avg_duration DESC, video_id ASC
LIMIT 4 OFFSET 2;
两个字符串的最小ASCII删除和(20分)
力扣原题: **********************
给定两个字符串s1
和 s2
,返回 使两个字符串相等所需删除字符的 ASCII 值的最小和 。
示例 1:
输入: s1 = "sea", s2 = "eat"
输出: 231
解释: 在 "sea" 中删除 "s" 并将 "s" 的值(115)加入总和。
在 "eat" 中删除 "t" 并将 116 加入总和。
结束时,两个字符串相等,115 + 116 = 231 就是符合条件的最小和。
示例 2:
输入: s1 = "delete", s2 = "leet"
输出: 403
解释: 在 "delete" 中删除 "dee" 字符串变成 "let",
将 100[d]+101[e]+101[e] 加入总和。在 "leet" 中删除 "e" 将 101[e] 加入总和。
结束时,两个字符串都等于 "let",结果即为 100+101+101+
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
🔥笔试编程真题宝典💯 文章被收录于专栏
📕分享大厂机试真题深度剖析核心考点,助你速通面试。