美团笔试题_20220409

article/2025/8/23 19:16:10

前言

笔试一共五道编程题(四+一),一为专项编程题,估计不同岗位有题目不一样,使用的是赛码网,允许跳出界面使用自己的IDE。

在此感谢筱羊冰冰提供的部分题目及题解。

题目一:数圈游戏

给定一个整数n,计算该整数含有的圆圈个数。数字0-9对应的圈数如下:
0: 1
1: 0
2: 0
3: 0
4: 0
5: 0
6: 1
7: 0
8: 2
9: 1

输入:
第一行为一个整数n,表示数圈游戏的数字。

输入示例:
60498
输出示例:
5

限制:
80%的测试用例:n<=10000
100%的测试用例:n<=100000000

思路:

该题较为简单,一次遍历累加即可。

题目二:士兵排队

给定一定数量的士兵,将士兵按照身高从小到大排列,身高相同者按照姓名的字典序从小到大排列。

输入:
第一行为一个整数n,表示士兵的数量。
第二行为n个士兵的身高,单位为cm。
第三行为n个士兵的姓名。

输入示例:
4
176 170 176 176
bamma tom alpha beta

输出示例:
tom alpha bamma beta

限制:
士兵身高 hi <= 300
士兵姓名长度 ni <= 20

思路一:

将每一个人的身高和名字按照 (身高,名字) 的格式存储,然后进行两次排序,先按照身高排序,再按照名字排序即可。(利用了python排序算法的稳定性!)

n = int(input())
heights = list(map(str, input().split()))
names = list(map(str, input().split()))
ls = []
for i in range(n):ls.append((heights[i], names[i]))
# lambda函数指定排序规则
ls.sort(key=lambda x:x[1])
ls.sort(key=lambda x:x[0])
for i in range(n):print(ls[i][1], end=' ')

思路二:

因为身高的限制为 hi <= 300,所以身高最高只能为三位数,那么我们可以把所有身高都通过补前置零的方式化为三位数,然后再与名字拼接成一个字符串,这样只需要一次排序就能够得出结果。

n = int(input())
heights = list(map(str, input().split()))
names = list(map(str, input().split()))
for i in range(n):# str.zfill()自动填充heights[i] = heights[i].zfill(3) + names[i]
heights.sort()
for i in range(n):print(heights[i][3:], end=' ')

题目三:路径搜索

给定一个地图,询问是否存在一条从起点到终点的直接通路。注意,通路是双向的。

输入:
第一行包括两个整数n和m,分别表示地图上点的数量和通路的数量。
第二行包括m个整数,表示地图上通路的一端。
第三行包括m个整数,表示地图上通路的另一端。
第四行包括k个整数,表示询问的次数。
接下来的k行每行包括两个整数,分别表示起点和终点。

输入示例:
4 5
1 2 1 3 1
2 3 3 4 4
4
1 3
2 4
2 1
3 2

输出示例:
Yes
No
Yes
Yes

思路:

筱羊冰冰:上来就看错了,然后花了好久写了类似并查集的东西,然后用不上……
(果然大佬就是不一样,上来直接手撕并查集)
这道题只需要检查有无指定通路就行了,不过要特别注意查询范围,因为通路是双向的而且要求的是直接通路。

n, m = map(int, input().split())
lsu = list(map(int, input().split()))
lsv = list(map(int, input().split()))
k = int(input())
ways = set((lsu[i], lsv[i]) for i in range(m))
out = []
for _ in range(k):u, v = map(int, input().split())if (u, v) in ways or (v, u) in ways:out.append('Yes')else:out.append('No')
print('\n'.join(out))

题目四:井字棋

给定一个2x2的棋盘和n中不同的颜色,要求每行每列均不能出现相同的颜色,计算总共有多少种填充方案。

输入:
第一行包括一个整数n,表示颜色的数量。

输出:
输出一个整数,表示有多少种填充方案。

输入示例:
2

输出示例:
2

限制:
颜色的种类n <= 10

思路:

筱羊冰冰:有一说一,感觉就属这个题有意思吧。我当时看完,感觉就有一点像排列组合(业余玩家,不太清楚具体的类型)。
n种颜色,如果颜色足够(指大于四种),我们其实也只能取出四种来操作,所以只需要一个
C n 4 C_n^4 Cn4
所以我们其实只需要考虑四种以内的情况。

两种颜色:

1221
2112

三种颜色:
我们自然可以想到,拿两种颜色就可以填上面的两种
C 3 2 ∗ 2 C_3^2 * 2 C322
然后,如果是三种颜色都要,有12种,肯定是有一个重复的,那么对角线重复就有两种情况,剩下的其实就是将三个数字填入三个位置,
A 3 3 A_3^3 A33
就是6 + 6*2 = 18。

到这里其实就应该明白了,我们只需要知道 i 种颜色有多少种即可,因为 i = 2, 3, 4,我们完全可以直接写出来,剩下的就是一个组合问题,再给出一个阶乘列表。

# ls[i]为i种颜色都使用,对应的可能数
# 四种颜色忘了说了,不过就是个A44
ls = [0, 0, 2, 12, 24]
# ls_jc[i] = i!
ls_jc = [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800]
ret = 0
n = int(input())
if n <= 1:# 他在系统公告中,提示了0的问题ret = 0
elif n <= 4:for i in range(2, n+1):ret += ls[i] * ls_jc[n] // (ls_jc[i] * ls_jc[n-i])# 还有一个限制就是输出大小,这里原题目是有的ret %= 1000000007
else:for i in range(2, 5):ret += ls[i] * ls_jc[n] // (ls_jc[i] * ls_jc[n-i])ret %= 1000000007
print(ret)

小插曲:

当时有一块写错了,然后跑出来只有27%,自己就去看了一下范围是小于等于十,那么案例至少有10个吧。
然后自己因为有边界检测,负数、0、1、2都能正确,那么至少对三个,反推出案例应该是11个,那么就是3往上有问题,所以将矛头对准了ls[3],果然是算少了,改成12,啪的一下,很快就过了……

题目五:堆积木

给定一个已有的字符串和一个目标字符串,可以从右边删除一个字符,也可以往左边插入一个字符,删除和插入操作的次数没有限制,问最少操作多少次可以使已有字符串变成目标字符串。

输入解释
5原串长度
1 5 3 4 6原串
5目标串长度
2 1 5 3 4目标串

思路:

筱羊冰冰:这个题,其实看明白了就没那么难,其实就是找最长公共子序列。

from collections import deque
l_old = int(input())
old = input().split()
l_new = int(input())
new = input().split()
length = 0
# 这里没啥原因,就是deque的头插尾插都比较快,O(1)的
s1, s2 = deque(), deque()
judge = 0
while True:s1.append(old[length])s2.appendleft(new[-length-1])length += 1if s1 == s2:judge = 1breakelif length == min(l_old, l_new):break
if judge:print(l_old+l_new - length*2)
else:print(l_old+l_new)

重大失误:

上面的代码其实没考虑,如果有多对子串相同,要找出最长的……
不过感觉测试案例比较拉,所以显示还是ac了的。

凉梦空间

欢迎你进入我的个人博客网站参观交流:https://www.liangmeng.xyz

在这里插入图片描述


http://chatgpt.dhexx.cn/article/vmA892wI.shtml

相关文章

美团笔试记录

美团笔试 今天下午参加了美团校招的笔试&#xff08;web前端/移动端&#xff09;&#xff0c;题型如下&#xff1a;20道选择题、20道专项选择题、2道编程题、1道论述题。但是我肯定不能说出具体是什么题目&#xff0c;毕竟好像要保护题目的隐私。 选择题 选择题难度有点大&a…

美团2023年春招在线前端笔试题回忆版

提示&#xff1a;题目不一定完全正确&#xff0c;只能说给大家参考会考察哪些知识点。 文章目录 前言一、单选&#xff08;计算机基础知识&#xff09;二、专项选择三、编程题1. 某地有一个火车站如下图所示&#xff0c;小红很好奇火车是怎么驶进驶出的&#xff0c;然后每天记录…

关于信息学奥赛一本通(C++版)在线评测系统 1153 绝对素数

信息学奥赛一本通&#xff08;C版&#xff09;在线评测系统网址&#xff1a;信息学奥赛一本通&#xff08;C版&#xff09;在线评测系统 (ssoier.cn) 1153&#xff1a;绝对素数 时间限制: 1000 ms 内存限制: 65536 KB …

信奥一本通1365

1365&#xff1a;FBI树(fbi) 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 6443 通过数: 4366 【题目描述】 我们可以把由“0”和“1”组成的字符串分为三类&#xff1a;全“0”串称为B串&#xff0c;全“1”串称为I串&#xff0c;既含“0”又含“1”的串则称为…

信息学奥赛一本通评测系统P1336

恭喜你看到了这篇题解&#xff0c;他会让你避开很多坑(新手推荐&#xff0c;大佬提些建议嘛) 当然&#xff0c;我不想让大佬像下面这道题中大佬一样。[AHOI2017/HNOI2017]大佬 - 洛谷https://www.luogu.com.cn/problem/P3724 1336&#…

信息学奥赛一本通---1000:入门测试题目

1000&#xff1a;入门测试题目 时间限制: 1000 ms 内存限制: 32768 KB 提交数: 254022 通过数: 152601 【题目描述】 求两个整数的和。 【输入】 一行&#xff0c;两个用空格隔开的整数。 【输出】 两个整数的和。 【输入样例】 2 3 【输出样例】 5 答案如下: #…

信息学奥赛一本通(C++版)在线评测系统网址

信息学奥赛一本通&#xff08;C版&#xff09;在线评测系统 (ssoier.cn)http://ybt.ssoier.cn:8088/index.php

DMSP夜间灯光数据

数据和详细信息参见https://ngdc.noaa.gov/eog/dmsp/dmsp.html&#xff09; 1、美国国防气象卫星计划&#xff08;Defense Meteorological Satellite Program&#xff0c;DMSP&#xff09;由美国空军航天与导弹系统中心运作&#xff0c;卫星运行的线性扫描系统&#xff08;Oper…

大数据应用 | 关于夜间灯光数据在经济学应用的探讨

本文转载自公众号中国经济学教育科研网 原文信息&#xff1a;Gibson, J., Olivia, S., Boe-Gibson, G. and Li, C., 2021. Which night lights data should we use in economics, and where?. Journal of Development Economics, p.102602. 近年来&#xff0c;夜间灯光数据越来…

【数据】2012-2021NPP-VIIRS全球夜间灯光数据下载教程

2011年发射的新一代对地观测卫星Suomi NPP&#xff0c;该卫星搭载的可见光/红外辐射成像仪&#xff08;Visible Infrared Imaging Radiometer Suit&#xff0c;VIIRS&#xff09;能够获取新的夜间灯光遥感影像(Day/Night Band&#xff0c;DNB波段&#xff09;&#xff0c;分辨率…

数据分享|NPP/VIIRS夜间灯光数据(2012-2020逐月)

美国国家海洋大气管理局NOAA下属的国家环境信息中心NCEI下有专门对夜光数据加以处理的小组。他们发布每个月份的合成产品,也发布过2015、2016年的年度全球夜光数据集。 今天分享的夜间灯光数据正是来源于此。 一 数据来源 美国国家海洋大气管理局NOAA下属的国家环境信息中心…

珞珈一号01星(luojia1-01)的夜间灯光影像数据处理流程

珞珈一号01星&#xff08;luojia1-01&#xff09;的夜间灯光影像数据处理流程 书接上回&#xff0c;我们爬取了山东省的珞珈一号夜间灯光影像数据&#xff0c;现在我们来对数据进行预处理&#xff0c;以分区获取区域夜间灯光亮度值。 &#xff08;1&#xff09;加载珞珈一号夜…

基于珞珈一号夜间灯光数据的GDP空间化

ps&#xff1a;普普通通记录贴&#xff0c;地信菜鸡&#xff0c;以防结果被打回来重做然而忘了怎么操作。处理过程参考了很多论文&#xff0c;但操作还是自己来的&#xff0c;也有一点不专业的思考&#xff0c;所以也算原创吧。 记录&#xff1a; 一、数据获得与预处理 1、珞…

VIIRS-NPP夜间灯光数据处理

夜间灯光数据处理通常包括以下步骤&#xff1a; 原始数据读取&#xff1a;将夜间灯光数据从NPP或VIIRS卫星获取。数据预处理&#xff1a;清除数据中的噪声等。灯光数据网格化&#xff1a;将原始数据转换为网格数据&#xff0c;以便于后续分析。灯光强度统计&#xff1a;对网格…

中国范围夜间灯光逐月数据(2012-2021年)

中国范围夜间灯光逐月数据&#xff08;2012-2021年&#xff09;文件大小&#xff1a;25.81G&#xff0c;已处理好。 1.数据介绍 逐月的夜间灯光影像。原始的数据可从官网下载。 官网的链接为https://eogdata.mines.edu/products/vnl/。 进入官网找到Monthly Cloud-free DNB…

走近夜间灯光——教你平均灯光指数(ANLI)如何得到(超详细)

区域灯光总量&#xff08;总强度&#xff09;或者平均灯光&#xff08;灯光密度&#xff09;可以反映该区域的灯光特征[1] 根据常识&#xff0c;照明设施的密度和使用能够反映该区域的繁荣程度&#xff0c;故一个区域越亮&#xff0c;也就越繁荣&#xff0c;所以总强度和灯光密…

夜间灯光数据(npp/viirs)网格化处理全过程

1、准备遥感数据&#xff1a;下载的是2017年月度数据&#xff0c;共12组。 下载地址&#xff1a;科罗拉多矿业大学地球观测组(EOG) 网址&#xff1a;VIIRS Nighttime Light (mines.edu)https://eogdata.mines.edu/products/vnl/ 2、准备矢量数据&#xff1a;使用的是南京主城区…

VIIRS-NPP夜间灯光遥感数据下载和预处理

本文主要介绍VIIRS-NPP夜间灯光日合成DNB数据的下载和预处理 相关网站&#xff08;https://ngdc.noaa.gov/eog/download.html&#xff09; 也提供了灯光数据的月合成产品和年合成产品&#xff0c;可根据实际需求进行下载 日数据下载网站为&#xff1a;美国国家地理数据中心 h…

1992-2022年经过矫正的夜间灯光数据

夜间灯光数据是我们在各项研究中经常使用的数据&#xff01;我们平时使用的夜间灯光数据主要来源于NPP/VIIRS和DMSP/OLS两种渠道&#xff0c;我们之前也分享过这两种来源的夜间灯光数据&#xff0c;包括&#xff1a; 2012-2021年逐年的NPP/VIIRS夜间灯光数据2012-2021年逐月的…

1992-2018年中国各地级市夜间灯光数据

数据集名称&#xff1a;中国各地级市夜间灯光数据 时间范围&#xff1a;1992-2018年 数据来源&#xff1a;遥感卫星 相关说明&#xff1a;数据和详细信息参见https://ngdc.noaa.gov/eog/dmsp/dmsp.html&#xff09;1、美国国防气象卫星计划&#xff08;Defense Meteorologic…