算法提高 身份证排序

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

问题描述

  安全局搜索到了一批(n个)身份证号码,希望按出生日期对它们进行从大到小排序,如果有相同日期,则按身份证号码大小进行排序。身份证号码为18位的数字组成,出生日期为第7到第14位

输入格式

  第一行一个整数n,表示有n个身份证号码

  余下的n行,每行一个身份证号码。

输出格式

  按出生日期从大到小排序后的身份证号,每行一条

样例输入

5

466272307503271156

215856472207097978

234804580401078365

404475727700034980

710351408803093165

样例输出

404475727700034980

234804580401078365

215856472207097978

710351408803093165

466272307503271156

数据规模和约定

  n<=100000

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator; public class 身份证排序 {
static Comparator<String> c = new Comparator<String>() {
public int compare(String s1, String s2) {
String t1 = s1.substring(6,14);
String t2 = s2.substring(6,14);
if(!t1.equals(t2)){
return t2.compareTo(t1);
}
else return s2.compareTo(s1); }
};
public static void main(String[] args) throws IOException {
// Scanner sc = new Scanner(System.in);
BufferedReader re = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(re.readLine());
ArrayList<String> str = new ArrayList<String>();
PrintWriter pt = new PrintWriter(new OutputStreamWriter(System.out) {
@Override
public void write(int b) throws IOException {
// TODO Auto-generated method stub }
});
for(int i=0; i<n; i++){
String s = re.readLine();
str.add(s);
}
re.close(); Collections.sort(str, c); for(int i=0; i<str.size(); i++){
pt.println(str.get(i));
}
pt.flush();
pt.close();
} }

最新文章

  1. Common Bugs in C Programming
  2. 虚拟机软件bochs编译使用问题
  3. POJ 1503
  4. 深入理解计算机系统第二版习题解答CSAPP 2.3
  5. q3 bsp随笔(2)
  6. golang基础数据结构
  7. 配置tomcat及如何自动编译jsp文件
  8. win10 更新系统更新补丁后无法启动处理办法
  9. 5m21d缓冲区溢出学习笔记
  10. Python api接口和SQL数据库关联
  11. Python 操作文件
  12. Map、Set、List 集合 差别 联系
  13. Java并发-懒汉式单例设计模式加volatile的原因
  14. 小H和密码
  15. LGP4577【JSOI2018】战争
  16. 在其模块列表中有一个错误模块“ManagedPipelineHandler”。
  17. Microsoft EDP(enterprise database protection)选择应用程序在哪里可以访问企业数据
  18. android基本控件学习-----TextView
  19. Ubuntu免安装配置MySQL
  20. Python数据分析简介

热门文章

  1. springboot controller templates html
  2. Python 的缩进是不是反人类的设计?
  3. MYsql 8 连接报错 MySQLNonTransientConnectionException: Could not create connection to database server.
  4. 2020网鼎杯 白虎组reverse:hero
  5. 谈谈Java常用类库中的设计模式 - Part Ⅰ
  6. php5.2安装memcached 扩展
  7. Python的概述
  8. 在centos8使用Docker部署Django项目
  9. 依赖工程开发,编译报错Command Libtool failed with a nonzero exit code
  10. 欧拉函数 BZOJ2705