前言

一共五道题,最后一道题单独分了一栏没看懂……
用的是赛码网的平台,允许跳出界面使用ide

这里感谢MAC、凉梦的整理题目,以及一些题目的解法

本人是全部ac测试通过了,应该是没大问题,如果有问题可以提出,如果有优化也欢迎提出。

1-4题

1

数圈游戏:给定一个整数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

思路:
这个没啥说的,就读入string,一位位看就行了。

2

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

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

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

输出示例:
tom alpha bamma beta

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

解法1
我们将每一个人组成(身高,名字)的格式,然后按照先身高后名字排序即可

n = int(input())
s = input().split()
heights = [int(i) for i in s]
names = input().split()
ls = []
for i in range(n):ls.append((heights[i], names[i]))
ls.sort(key=lambda x:x[1])
ls.sort(key=lambda x:x[0])
for i in range(n):print(ls[i][1], end=' ')

解法2
我们还可以直接拼接成一个字符串,不过要限制身高一定要为三位数,方便我们后面拆分

n = int(input())
heights = input().split()
for i in range(n):# 简单一点,字符串的zfill方法可以满足要求if len(heights[i]) < 3:heights[i] = "0"*(3-len(heights[i])) + heights[i]
names = input().split()
for i in range(n):heights[i] += names[i]heights.sort()
for i in range(n):print(heights[i][3:], end=' ')

3

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

输入:
第一行包括两个整数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

思路:
上来就看错了,然后花了好久写了类似并查集的东西,然后用不上……
只需要把边存储就行了,不过注意他的查询范围,如果list应该是不行,建议set
然后注意他是双通路(从u到v和从v到u都行)

s = input().split()
n, m = int(s[0]), int(s[1])
s = input().split()
lsu = [int(i) for i in s]
s = input().split()
lsv = [int(i) for i in s]
ways = set()
for i in range(m):ways.add((lsu[i], lsv[i]))ways.add((lsv[i], lsu[i]))
q = int(input())
for _ in range(q):s = input().split()u, v = int(s[0]), int(s[1])if (u, v) in ways:print('Yes')else:print('No')

4

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

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

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

输入示例:
2

输出示例:
2

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

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

1 2 2 1
2 1 1 2

三种颜色:
我们自然可以想到,拿两种颜色就可以填上面的两种,C32 * 2
然后,如果是三种颜色都要,有12种,肯定是有一个重复的,那么对角线重复就有两种情况,剩下的其实就是将三个数字填入三个位置,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,啪的一下,很快就过了……

第五题

这个题也不知道为什么分开,不过描述有一点sao。

有一个已知的字符串,和一个目标字符串,我们可以从左边插入一个字符,或者从右边删除一个字符,问最少多少次,可以使已知->目的。(无限插入,无限删除)

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

比如12345,要变成61234,我们删除左端的5,在右端插入6,即可
(这段是我回忆的……,瞬间拉跨)

思路:
这个题,其实看明白了就没那么难,其实就是找一段公共子序列,而且子序列的头一定要是初始的头,尾部是目标的尾部。

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了的。

开水团2023届实习笔试相关推荐

  1. 2023届求职 笔试面试记录

    TP-Link(嵌入式软件) 笔试 选择题: 物理层设备 可能会出现进程饿死的进程调度算法 调用 Fork 后,产生的子进程保留了父进程的什么 Huffman 编码 采用 LRU 算法时,进程访问过程 ...

  2. 招商银行信用卡中心21届实习笔试编程题

    第一题 镜像字符串 给一个序列x,如果x和它的逆序列y的每一位都是镜像关系,则输出"yes"否则输出"no" 1镜像1,2镜像5,3镜像8,4镜像7,6镜像9. ...

  3. 2023届IC实习小结

    2023届IC实习小结 字节跳动 字节跳动开始的比较早,在2月中旬的时候开放投递.我是2月20日晚投递简历,2月21日简历挂,反馈很快.跟内推的字节师兄交流后发现,是我投递的上海部门那边不缺人,所以直 ...

  4. 2023届暑期实习京东二面

    2023届暑期实习京东二面 下午一面,晚上二面,好刺激 1.研究生专业,研究方向,项目是实验室接的吗,研究内容以及应用场景 2.熟悉Python还是Java 3.项目数据模型(table)是自己设计的 ...

  5. 2023届暑期实习京东物流一面

    2023届暑期实习京东物流一面 1.自我介绍 2.数据结构修过吗,说下学过的数据结构 3.图的最小生成树,Kruskal, Prim 4.Collection用过哪些 5.HashMap与Concur ...

  6. 美团2023届秋招第一场笔试记录2022年8月6日

    美团2023届秋招笔试记录 笔试之后总结记录的一些题解,并不能保证全部AC 编程题1-小美的礼盒包装AC? 题目描述 小美开的西点屋子举办一周年活动,她准备制作一批礼盒作为对消费者的回馈,每个礼盒中都 ...

  7. 用友2023届秋招Java笔试-S2卷-编程题详解

    用友2023届秋招Java笔试-S2卷 其他的选择和多选不允许跳出 另外还有一道关于数据库查询的题: 有两个表,一个学生表,一个成绩表包含学生各个科目的成绩,学生表根据学生id和成绩表关联,要求的是通 ...

  8. (海康内推码)海康威视2022届春招、2023届超星实习生

    投递地址:https://campushr.hikvision.com/home 填写内推码[AFRDH0]后,暑期实习项目可免简历筛选直接进入笔试 为什么选我的内推码? 0.私信我,添加vx,实时沟 ...

  9. 2023届双非硕士四个月秋招历程总结

    2023届双非硕士秋招总结 本人重庆某双非硕士在读,控制类专业:本科河南某不知名二本,自动化专业. 整个秋招期间,历时四个月,投了一百六十多家公司,面了四五十次,一共斩获7个offer 深圳两家(16 ...

  10. 2023届秋招提前批信息汇总(持续更新ing)

    实时更新的文档:2023届秋招提前批信息汇总(持续更新ing) (qq.com) 公司 投递链接 面试网站 工作地点 截止时间 互联网及私企(软件) 网易游戏 网易游戏(互娱)校园招聘官网 https ...

最新文章

  1. 二分类变量相关性分析spss_spss:两个有序分类变量的相关分析『kendallstau-b相关系数』...
  2. mysql 开仓函数_MySQL函数大全 及用法示例
  3. C++ 四种强制类型转变与区别之处
  4. java时间错误_更改操作系统时间时睡眠()中的Java错误:任何解决方法?
  5. java高级编程期末考试题_java高级编程考题
  6. MFC中如何画带实心箭头的直线
  7. Mac环境下反编译Apk(入门)
  8. android设计简单计算器代码下载,简单计算器实例
  9. 高级英语(张汉熙版)第一册学习笔记(原文及全文翻译)——2 - Hiroshima-The “Liveliest“ City in Japan (excerpts)(广岛——日本“最有活力”的城市)
  10. 2018某二本的秋招流水帐
  11. 这个Python脚本牛逼了,秒抢红包就算了,还能无视撤回消息
  12. 华为RH2288H V3服务器raid配置
  13. 大数据工程师四能力你拥有几种?
  14. 【论文笔记】Heterogeneous Transfer Learning for HSIC Based on CNN
  15. S-SDLC(Secure Software Development Lifecycle) 安全编码规范
  16. Hibernate学习文章
  17. 撰写营销邮件:避开10 种常见雷区
  18. php爬取html内容,php抓取网页html,curl和file_get_contents通过get或post方式抓取网页内容,源代码
  19. 作为一位软件测试工程师,应当需要哪些能力?
  20. 《调色师手册:电影和视频调色专业技法(第2版)》——配置调色影院

热门文章

  1. 猿辅导揭秘听课小窍门,掌握这些技巧让你的学习事半功倍
  2. android 开发日历功能,Android开发之如何实现日历控件
  3. jqfactor_analyzer源代码解读01
  4. R包survival,survminer生存分析代码
  5. CumtCTF第二次双月赛Writeup(Web详解)
  6. 主页 被 2345 篡改怎么办
  7. luogu P1653 猴子
  8. 行情 api php,股票实时数据接口说明,股票实时行情api接口
  9. leetcode刷题java之739. 每日温度
  10. 花生壳ping域名得到的IP与实际IP不一致的解决方法