蓝桥杯——试题 算法提高 身份证排序

阅读: 评论:0

蓝桥杯——试题 算法提高 身份证排序

蓝桥杯——试题 算法提高 身份证排序

问题描述
  安全局搜索到了一批(n个)身份证号码,希望按出生日期对它们进行从大到小排序,如果有相同日期,则按身份证号码大小进行排序。身份证号码为18位的数字组成,出生日期为第7到第14位
输入格式
  第一行一个整数n,表示有n个身份证号码
  余下的n行,每行一个身份证号码。
输出格式
  按出生日期从大到小排序后的身份证号,每行一条
样例输入
5
466272307503271156
215856472207097978
234804580401078365
404475727700034980
710351408803093165
样例输出
404475727700034980
234804580401078365
215856472207097978
710351408803093165
466272307503271156

思路:提取后6位、前6位、中间8位依次进行排序,最后只输出号码即可。

n=int(input())
li=[]
temp=[[]for i in range(n)]
for i in range(n):li.append(input())
for i in range(n):temp[i].append(li[i])temp[i].append(int(li[i][6:14]))temp[i].append(int(li[i][0:6]))temp[i].append(int(li[i][14:18]))
temp.sort(key=lambda x:x[3],reverse=True)  #先比较后4位
temp.sort(key=lambda x:x[2],reverse=True)  #再比较前6位
temp.sort(key=lambda x:x[1],reverse=True)  #最后比较中间8位
for i in range(n):print(temp[i][0])

本文发布于:2024-02-01 00:25:39,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170671833932481.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:算法   身份证   试题   蓝桥杯
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23