Pat乙级1028题——人口普查(Python)一个运行超时

PAT乙级C语言 1028 人口普查 思路 判断是否符合要求并计数,把符合的结构输入另一个数组,对该数组进行qsort排序,然后输出第一个和最后一个元素里的相关成员 推荐 我觉得这个写的很好(呜呜呜我写了七十几行人家写二十几行就好了,差距好大) PAT乙级1028. 人口普查(C语言)_对方北方-优快云博客 #include<stdio.h> #include<stdlib.h> typedef struct{ char name[10]; int year,month,date; }cit 阅读详情

注意

  • 考虑排除不合理年龄后,人数为0的情况

代码如下

def popQuery():
    count = int(raw_input())
    info = []
    for i in range(count):
        personInfo = raw_input().split(' ')
        personInfo[1] = map(int, personInfo[1].split('/'))
        if personInfo[1] <= [2014, 9, 6] and [1814, 9, 6] <= personInfo[1]:
            info.append(personInfo)
    if len(info) == 0:
        print 0
        return
    sortedInfo = sorted(info, key = lambda x:x[1])
    print "%d %s %s"%(len(sortedInfo), sortedInfo[0][0], sortedInfo[-1][0])

if __name__ == '__main__':
    popQuery()

测试结果

得分为16,不知道为什么会运行超时?

PAT乙级【Java题解合集】 学习完本专栏后,leetcode的简单题应该是没啥问题了,可以去做甲级的题目或者leetcode中等以上难度的题目继续修炼,后续博主会整理并更新算法修炼专栏,欢迎您的订阅!👉🏻算法修炼专栏👈🏻。 阅读详情

相关推荐

PAT乙级 (Basic Level) 目录【Python解】已完结至1125

计算机编程能力考试(Programming Ability Test,简称PAT)是由。旨在培养和展现学生分析问题、解决问题和计算机程序设计的能力,计算机程序设计人才,并为企业选拔人才提供。

新时代先锋的博客 1773

pat乙级 1028 人口普查 (20 分) python 无超时

由于python的性能问题 面对大量输入数据 写入列表会很慢 并且input()性能低于sys.stdin.readline() 所以不用列表来保存最后结果 python可以直接比较"1081/05/06"与"1555/04/23"这种日期大小(总有现成的轮子用是吧 import sys total_num = int(input()) if total_num == "0": print("0") else: ori = [""] * total_num data_people .

weixin_47234647的博客 265

PAT乙级python编程练习(六)

PAT乙级python编程练习(六) PAT乙级python编程练习(六) 1026 程序运行时间 1027 打印沙漏 1028 人口普查 1029 旧键盘 1030 完美数列 方法一 方法二 1026 程序运行时间 要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用...

Hannah的博客 906

PAT乙级——1028(模拟)

题目:人口普查 (20 分) 某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。 这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200 岁的老人,而今天是 2014 年 9 月 6 日,所以超过 200 岁的生日和未出生的生日都是不合理的,应该被过滤掉。 输入格式: 输入在第一行给出正整数 N,取值在(0,10​5];随后 N 行,...

熊仙森滴Blog 454

PAT (Basic Level) Practice Python解法 1028 人口普查(年龄比较/sys读取/列表存取/input与列表超时解决办法)

这个题最后一个点会疯狂报错超时,原因有2,一是列表存取,二是输入。 #这是第一版本 n = int(input()) people = [] for i in range(n): info = input().split(' ') birth = list(map(int,info[1].split('/'))) people.append([birth, info[0]]) for i in range(len(people)-1,-1,-1): if people[i][

右置心脏 364

用R搞定生态溯源:MixSIAR贝叶斯混合模型从安装到出图的保姆级教程

本文提供了一份详细的MixSIAR贝叶斯混合模型教程,涵盖从R环境配置、数据预处理到模型参数设置和可视化分析的完整流程。通过实战案例和常见问题解决方案,帮助生态学研究者快速掌握混合模型在生态溯源中的应用,提升数据分析效率。

weixin_42531516的博客 467

PAT乙级 1028. 人口普查 C语言

1028. 人口普查(20)题目: 某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。 这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老人,而今天是2014年9月6日,所以超过200岁的生日和未出生的生日都是不合理的,应该被过滤掉。 输入格式: 输入在第一行给出正整数N,取值在(0, 105];随后N行,每行给出

米狗GO的博客 679

【数据集处理】DroneVehicle数据集处理方法

DroneVehicle数据集由无人机采集的56,878张图像组成,其中一半是RGB图像,其余为红外图像。作者为这五个类别制作了带有定向边界框的丰富注释。

qq_44102942的博客 5046

每日一题——Python实现PAT乙级1028 人口普查 Keyboard(举一反三+思想解读+逐步优化)六千字好文

这段代码逻辑清晰且结构合理,能够高效地处理输入数据并找出最年长和最年轻的人的名字。其时间复杂度和空间复杂度均为有效的O(N)和O(1),表现良好。可以考虑在输入数据量非常大的情况下进一步优化,例如通过更高效的输入处理方法或并行处理,但对于一般情况,这段代码已经非常健壮和高效。对于这个问题,进一步的优化空间有限。主要优化方向在于提高输入效率和减少冗余的代码。上述代码已经尽可能地优化了时间复杂度和空间复杂度,同时保持了代码的可读性和易维护性。

weixin_44915521的博客 1132

CTF实战:Flask Session流量解密与内存马路由追踪

本文通过一道CTF实战题目,详细解析了Flask Session流量解密与内存马路由追踪的全过程。文章从破解前端加密密码入手,逐步揭示如何利用泄露的SECRET_KEY解密Session,发现命令执行痕迹,并最终追踪到攻击者植入的内存马路由。内容涵盖Wireshark流量分析、flask-unsign工具使用等实战技巧,为CTF选手和安全研究人员提供了一套完整的Flask应用安全分析思路。

weixin_28309571的博客 306

手把手教你用Python+GDAL处理0.5米吉林一号卫星影像(附代码)

本文详细介绍了如何使用Python和GDAL处理吉林一号0.5米高分辨率卫星影像,包括环境配置、数据预处理、分辨率融合、植被指数计算及地物分类等关键步骤。通过实战代码示例,帮助开发者高效处理大尺寸遥感数据,解决资源崩溃和算法选择问题,提升遥感影像分析能力。

weixin_30892037的博客 127

PAT乙级_1028 人口普查_Python_AC解法_含疑难点

本文介绍了PAT乙级1028题"人口普查"的Python解法。该题要求筛选合理的生日数据,找出最年长和最年轻的人。关键点包括:1)直接比较字符串格式的日期而非转换为date对象以提高效率;2)处理大量数据时需边读取边比较,避免超时;3)注意测试点3当有效人数为0时仅输出0的特殊情况;4)确保日期格式统一(补零)。解法采用预设边界值(start/end)和实时比较策略,通过字符串比较简化处理流程,最终以f-string格式化输出结果。时间复杂度为O(n),适用于题目给出的数据规模。

CongQianS1的博客 629

TMS320F28377D的sys/bios双核工程配置详解——从零搭建到RAM优化

本文详细解析了TMS320F28377D双核系统在sys/bios环境下的工程配置与RAM优化策略。从开发环境搭建、SYS/BIOS工程创建到双核CMD文件配置,提供了实战技巧和常见问题解决方案,帮助开发者高效实现电力电子控制系统中的双核协作与性能优化。

weixin_28292761的博客 600

PAT 乙级 1028(人口普查)

PAT 乙级 1028题目要求代码思路 题目要求 某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。 这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200 岁的老人,而今天是 2014 年 9 月 6 日,所以超过 200 岁的生日和未出生的生日都是不合理的,应该被过滤掉。 输入格式: 输入在第一行给出正整数 N,取值在(0,10 ...

qq_42865772的博客 168

【KBrowser】基于 Kiwi/chromium 制作全新外壳,将 chromium 代码当作 webview 使用,实现可控核替换

chromium 其实只需几步巧妙的架构,就能拿来“换核”,甚至可以插件化,实现类似webview.apk 的效果。重新设计界面,不再是差不多的回声。而 Kiwi 基于 chrome 77 ,只有 50 MB。优势是兼容好、可安装扩展。

sinat_27171121的博客 2029

【数据分析/商业分析】面试题整理——SQL专题

数据分析\商业分析—面试题整理 自己总结的SQL类的面试题 文章目录数据分析\商业分析—面试题整理1.新增用户2.活跃用户数量3.连续登录4.次(n)日留存5.每个科目下分数最高的两名学生

awater_17的博客 1859

PAT乙级合集——python实现(持续更新中~)

最近在巩固python编程能力,本文用于记录python实现的PAT乙级刷题索引,以及在刷题过程中总结的一些规则和经验~ 刷题建议:PAT乙级都是些简单的题目,如果是刷题的同学可以直接按照题号顺序刷即可~ 刷题笔记和规则整理: 合集: 乙级编号 标题 PAT 1001 害死人不偿命的(3n+1)猜想(15分) PAT 1002 写出这个数 (20分) PAT 1003 我要通过!(20分) PAT 1004 成绩排名 (20分) PAT 1005 继续(3n+1)猜想(25分

crayonjingjing的博客 1205

使用Simulink进行带通滤波器的设计与仿真研究

摘要:本文介绍利用Simulink设计和仿真带通滤波器的方法。通过定义系统需求(保留100-500Hz信号),创建包含多频信号源、加法器和巴特沃斯滤波器的模型,重点展示滤波器频率选择特性。详细步骤包括模块配置、参数设置(中心频率300Hz、带宽400Hz)、信号连接及可视化分析。实验验证了带通滤波器有效提取目标频段信号的能力,为复杂信号处理系统开发提供基础框架。所需工具为MATLAB R2023a和DSPSystemToolbox。

xiaoheshang_123的博客 326

适合初步练习PAT乙级——(1028) 人口普查

适合初步练习PAT乙级——(1028) 人口普查 某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。 这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200 岁的老人,而今天是 2014 年 9 月 6 日,所以超过 200 岁的生日和未出生的生日都是不合理的,应该被过滤掉。 输入格式: 输入在第一行给出正整数 N,取值在(0,105...

qq_43502020的博客 167

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

PAT乙级 (Basic Level) python3语言实现代码(全120道)

PAT乙级 (Basic Level) Practice (中文)题目共120道。本文所有代码均用python3语言编写,除了11道题因为个别测试点超时未通过外,其他均通过。

梁山伯的专栏 938

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

PAT乙级_合集_Python_AC解法_已完结至1125题

本文是针对PAT乙级考试Python解题的优化指南。作者发现虽然多数题目能顺利通过,但部分代码在提交时会出现错误或超时,而PAT系统不提供详细反馈。现有的Python解题资料较少且部分存在效率问题。文章旨在记录解题过程中的卡点、优化方法和最终AC代码,为使用Python的考生提供参考。目前优先更新前50题中较难的题目,后续会逐步补充其他题目。每道题将详细讲解解题思路以弥补代码注释不足的问题,帮助读者理解优化过程。

CongQianS1的博客 861

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

(Python3)PTA乙1028人口普查(最后一个测试点超时)

n = int(input()) Max = '1814/09/06' Min = '2014/09/06' max_, min_, num = '2014/09/06', '1814/09/06', 0 max_name, min_name = '', '' for i in range(n): name, date = input().split() if date >=...

wy 1572

Python每日一题——PAT乙级1028【人口普查】记录

需要考虑的点:1.样例2.无有效生日输出0。

Sechoice的博客 198

Python PAT乙级 1028 人口普查 (20分)

某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。 这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200 岁的老人,而今 天是 2014 年 9 月 6 日,所以超过 200 岁的生日和未出生的生日都是不合理的,应该被过滤掉。 输入格式: 输入在第一行给出正整数 N,取值在(0,10^​5];随后 N 行,每行给出 1 个人的姓名(由不超过 5 个 英文字母组成的字符串)、以及按 yyyy/mm/dd(即年/月/日)格式给出的生日。题目保

qq_42344132的博客 286

【PAT_Python解】1028 人口普查

【PAT_Python解】1028 人口普查

新时代先锋的博客 558

【PAT】乙级练习题

题目描述 星际战争开展了100年之后,NowCoder终于破译了外星人的密码!他们的密码是一串整数,通过一张表里的信息映射成最终4位密码。表的规则是:n对应的值是矩阵X的n次方的左上角,如果这个数不足4位则用0填充,如果大于4位的则只输出最后4位。 |1 1|^n => |Xn …| |1 0| |… …| 例如n=2时, |1 1|^2 => |1 1| *...

Xechos 394
上一篇: Pat乙级1027题——打印沙漏(Python)
下一篇: Pat乙级1029题——旧键盘(Python)
coder_wu
博客等级 码龄8年 5粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值