zoukankan      html  css  js  c++  java
  • C语言 · 身份证排序

    算法提高 身份证排序  
    时间限制:1.0s   内存限制:256.0MB
        
    问题描述
      安全局搜索到了一批(n个)身份证号码,希望按出生日期对它们进行从大到小排序,如果有相同日期,则按身份证号码大小进行排序。身份证号码为18位的数字组成,出生日期为第7到第14位
    输入格式
      第一行一个整数n,表示有n个身份证号码
      余下的n行,每行一个身份证号码。
    输出格式
      按出生日期从大到小排序后的身份证号,每行一条
    样例输入
    5
    466272307503271156
    215856472207097978
    234804580401078365
    404475727700034980
    710351408803093165
    样例输出
    404475727700034980
    234804580401078365
    215856472207097978
    710351408803093165
    466272307503271156
    数据规模和约定
      n<=100000
     
     1 #include<iostream> 
     2 #include<algorithm>
     3 #include<vector>
     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<string> 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 }
  • 相关阅读:
    4.Docker Compose 部署 Nexus
    3.Docker Compose 部署 GitLab
    2.Docker Compose 部署应用程序
    1.Docker Compose
    6.Dockerfile 指令
    5.Dockerfile 定制镜像
    4.Docker 操作容器
    3.Docker 操作镜像
    2.Ubuntu安装 Docker
    windows快捷键
  • 原文地址:https://www.cnblogs.com/panweiwei/p/6642252.html
Copyright © 2011-2022 走看看