C/C++知识点之C语言 · 身份证排序
小标 2018-11-13 来源 : 阅读 2225 评论 0

摘要:本文主要向大家介绍了C/C++知识点之C语言 · 身份证排序,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

本文主要向大家介绍了C/C++知识点之C语言  ·  身份证排序,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

算法提高 身份证排序  


时间限制:1.0s   内存限制:256.0MB
    


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


 1 #include 
 2 #include
 3 #include
 4 using namespace std;
 5 int cmp(string a, string b){//自定义排序函数 
 6     string bira = a.substr(6, 8);  
 7     string birb = b.substr(6, 8);  
 8     if(bira != birb)  
 9         return bira > birb; 
10     else  
11         return a > b;
12     return 0;  
13 }  
14 int main(){  
15     int n;  
16     scanf("%d",&n);  
17     vector v(n);//定义一个string类型的容器:v,容器大小为n 
18     for(int i=0; i<n; i++)
19         cin>>v[i];
20     sort(v.begin(), v.end(), cmp);//调用自己定义的排序函数  
21     for(int i=0; i<n; i++)  
22         cout<<v[i]<<endl;
23     return 0;  
24 }

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程