牛客网python刷题_牛客网刷题
做题
19题:
开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。
处理:
1、 记录最多8条错误记录,循环记录(或者说最后只输出最后出现的八条错误记录),对相同的错误记录(净文件名(保留最后16位)称和行号完全匹配)只记录一条,错误计数增加;
2、 超过16个字符的文件名称,只记录文件的最后有效16个字符;
3、 输入的文件可能带路径,记录文件名称不能带路径。
题解:
dic = dict()#创建空字典,可以之间用dict[name] = 'file',生成name 和 ‘file’的键值对
name_lines = []#创建文件列表
while True:
try:
lst = list(input().split())#将输入转化列表,split()即表示以空格划分,即将文件名与行数分割,lst[0]为文件名,lst[1]为代码行数
nam = lst[0]#取出列表的第一项,即取出文件名字
name = nam.split('\\')[-1][-16:]#取文件分割最后的一个字符,即取文件名字。取名字的最后16个字符
name_line = name + ' ' + lst[1] #将文件名字 和 代码行数都存入name_line,中间用空格间隔
if name_line not in dic:
dic[name_line] = 1
else:
dic[name_line] += 1
if name_line not in name_lines:
name_lines.append(name_line)
except:
for item in name_lines[-8:]:
print(item + " " + str(dic[item]))
break
77题火车进站
res = []
# every time trav stack(parking) have two
# operation: 1. pop the stack 2. add ele to stack
#
def trav(nodes, parking, result):
if not nodes and not parking:
res.append(" ".join(map(str, result)))
return
# pop the stack
if parking:
result.append(parking.pop())
trav(nodes, parking, result)
parking.append(result.pop())
# add ele to stack
if nodes:
parking.append(nodes.pop(0))
trav(nodes, parking, result)
# recovery
nodes.insert(0, parking.pop())
while True:
try:
parking = []
result = []
nums = int(input())
nodes = list(map(int, input().split()))
# default go throug the station
trav(nodes, parking, result)
res.sort()
for seq in res:
print(seq)
except:
break
68题 排序
这里因为python 内置的排序就是稳定的排序(相同值的元素,排完序之后相对位置不发生变化),所以可以直接拿来使用。
需要注意是sorted并不改变操作对象本身的排序,而是返回一个新的排完序之后的对象。
由于针对的是元组里面的第二个元素进行排序,所以需要指定key,因为默认是用元组中的第一个元素进行排序
while True:
try:
stu = []
nums = int(input())
style = int(input())
for i in range(nums):
name,grad = input().split()
stu.append((name, int(grad)))
if style == 0:
l1 = sorted(stu, key=lambda x:x[1],reverse=True)
else:
l1 = sorted(stu, key=lambda x:x[1])
for key,value in l1:
print("{0} {1}".format(key, value))
except :
break
24题 合唱队
这题实际上是一个最长上升子序列问题,也就是说找到当前元素的最长上升子串
如果需要使出列的人数最少,则应该选择串中元素所能组成的最长的子串并符合规则左边的k1 < k2 < ... < kx > kx+1 > kx+2 > ... > kn
所以需要求出每个元素的所有左边最长符合条件的子串以及右边最长符合条件的子串
求取某一边最长子串是对该边每一个元素进行计算,求取该元素该边的最长子串,所以可得公式
最长符合条件的子串为
符合条件的 kn > kn-1, kn = max(kn-1,kn-2,...,k0) + 1
while True:
try:
nums = int(input())
order = list(map(int,input().split()))
# the point of ascend view
asc = [1] * nums
# the point of descend view
des = [1] * nums
# revise order
rev = order[::-1]
for idx, val in enumerate(order[1:], 1):
if val > order[idx - 1]:
asc[idx] += asc[idx - 1]
else:
asc[idx] = asc[idx - 1]
print(asc)
for idx, val in enumerate(rev[1:], 1):
print(val)
if val > rev[idx - 1]:
des[idx] += des[idx - 1]
else:
des[idx] = des[idx - 1]
print(des)
except Exception as e:
print(e)
break
调试
写python代码时经常碰到,有异常,但是编译的时候没有提示,这是因为没有捕获异常,想要捕获所有的异常,可以直接捕获Exception,这样就捕获了大部分异常情况即可:
try:
# some code
except Exception as e:
print(e)
break
参考
牛客网python刷题_牛客网刷题相关推荐
- 华为机试python编程题_牛客网华为机试题之Python解法
牛客网华为机试题之Python解法 第1题 字符串最后一个单词的长度 a = input().split(" ") print(len(a[-1])) 第2题 计算字符个数 a = ...
- 温州大学c语言作业布置的网站,老师APP上布置作业 三年级娃为刷排名半夜做题_央广网...
在温州读小学三年级的皮皮(化名),因为学习需要,在妈妈黄女士的手机里安装了5个APP学习软件.有数学速算的,英语配音的,还有语文复习的.这些软件,都是班上的老师推荐安装的. 每天放学回家,皮皮就拿着黄 ...
- js逻辑训练题_二建冲刺必刷300题!精选历年真题+母子题+模考易错题!
订阅公众号,回复[口诀],获取完整版实务口诀 你是不是常常疑惑为什么同样在做题,同样熬通宵,同样很努力,为什么有人顺利拿证,有人却因几分之差黯然落榜? 因为二建不仅拼努力的程度,更要拼对精准二建信息的 ...
- 跨考计算机教研室,跨考教研室专家:脱离题海沉浮 做到有效做题_跨考网
很多同学在考研数学复习时,只知道一味的做题,诚然做题是必须的,但是应该采取相应的规划,有思想.有计划的去做题.那么,如何做题能够有效高效的提升数学水准呢,这里跨考教育教研室李老师给大家几点建议. 思考 ...
- 小米手机第三方卡刷软件_小米Max卡刷教程_小米Max用recovery刷第三方系统包
来说一下有关小米Max手机的卡刷教程了,也就是用第三方recovery进行刷机的教程了,关于这个手机的第三方recovery之前已经给大家说过了,今天主要是说说如何利用recovery进行卡刷的操作, ...
- 齐家网php源码_上海齐家网装修多少钱-装修公司
上海齐家网团购怎么样 我们家里当时是参加的城团网的团购会团购的~有贴心的水和午餐~就连小手掌和装订单用的拉链包都已经准备好了~可以说细节是无微不至~话说城团网活动真的是场场爆满~我好几次去晚了都没有椅 ...
- 小米bl未解锁变砖了如何刷机_小米9如何刷机 小米9稳定版卡刷开发版实操详细教程...
标签:小米9刷机,小米9刷机教程,小米9刷机工具 小米9如何刷机包,官方教程很多新人看不太懂,操作上还会有问题,rom之家小编这里就直接上干货,稳定版卡刷开发版实操教程. 简单说明下为什么跟大家介绍卡 ...
- 牛客网 java刷题_牛客网刷题(纯java题型 1~30题)
应该是先extend,然后implement class test extends A implements B { public static void main(String[] args) { ...
- java正则题_牛客网java编程题整理(不定期更新)
文章目录 190516 - 调整数组顺序使奇数位于偶数前面 题目 我的代码 高赞代码(via:海天一色) 190517 - 链表中倒数第k个结点 题目 我的代码 高赞代码(via:渡不过己) 1905 ...
最新文章
- 腾讯云AMD服务器8元/月
- boost::count_if相关的测试程序
- ant基本标签 及import properties
- substring用法
- 电脑公司win11 32位官方版镜像v2021.07
- HTTP协议编程,实现文件上传,Android客户端代码
- 95-290-382-源码-内存管理-Buffer-Flink运行时之统一的数据交换对象
- STM32工作笔记0077---UCOSIII中使用串口发送数据要注意的点
- 【Proteus仿真8086实验一】RAM存储器62256
- 哎呦,我他妈真操了!
- html5全屏(Fullscreen)
- 保险行业的自动化场景
- 华为云服务器购买以及使用教程
- git fetch 出错“error:failed to run repack”
- 数据科学总纲:欲练此功,必过此纲
- 《Vue.js实战》记录
- 文件包含漏洞(RFI)
- android字体不统一,Android下EditText中的字体不统一问题
- 一个简单的pingpong程序测试mpi消息通讯的开销及并行计算通讯启动时间测算
- 八年级下计算机教师工作总结,八年级数学教师教学工作总结范文(精选5篇)...
热门文章
- java.awt的父类,javax.swing.Japplet的父类是()。A.java.awt.panelB.java.a
- 0V2640摄像头开窗问题
- 中兴Axon40 Ultra配置怎么样 中兴Axon40 Ultra值得入手吗
- JAVA多态(超详细讲解)
- 海康威视面试(C++研发岗位)
- java 发送企业邮箱_java 企业邮箱_java 企业邮箱群发邮件
- linux出现too many openfile的两种解决方法
- HDU 6386 Age of Moyu(搜索)
- ldconfig mysql_ldconfig详解
- python itertools模块详解