C~K的班级

原创 2018年04月15日 14:42:18

C~K的班级

Time Limit: 1500 ms Memory Limit: 65536 KiB

Problem Description

经过不懈的努力,C~K终于当上了班主任。
现在他要统计班里学生的名单,但是C~K在教务系统中导出班级名单时出了问题,发现会有同学的信息重复,现在他想把重复的同学信息删掉,只保留一个,
但是工作量太大了,所以找到了会编程的你,你能帮他解决这个问题吗?

Input

第一行输入一个N,代表C~K导出的名单共有N行(N<100000).
接下来的N行,每一行包括一个同学的信息,学号 姓名 年龄 性别。

Output

第一行输出一个n,代表删除重复名字后C~K的班级共有几人。
接下来的n行,输出每一个同学的信息,输出按照输入的顺序。

Sample Input

6
0001 MeiK 20 M
0001 MeiK 20 M
0002 sdk2 21 M
0002 sdk2 21 M
0002 sdk2 21 M
0000 blf2 22 F

Sample Output

3
0001 MeiK 20 M
0002 sdk2 21 M
0000 blf2 22 F

Hint

Source

import java.util.*;

class Person{
String num;
String name;
int age;
String sex;
public Person() {
}
public Person(String num, String name, int age, String sex) {
super();
this.num = num;
this.name = name;
this.age = age;
this.sex = sex;
}


public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + ((num == null) ? 0 : num.hashCode());
result = prime * result + ((sex == null) ? 0 : sex.hashCode());
return result;
}

public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Person other = (Person) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (num == null) {
if (other.num != null)
return false;
} else if (!num.equals(other.num))
return false;
if (sex == null) {
if (other.sex != null)
return false;
} else if (!sex.equals(other.sex))
return false;
return true;
}

public String toString() {
return num + " " + name + " " + age + " " + sex;
}

}

public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
List<Person> l = new ArrayList<Person>();
for(int i = 0; i < t; i++) {
String num = sc.next();
String name = sc.next();
int age = sc.nextInt();
String sex = sc.next();
Person p = new Person(num,name,age,sex);
if(!l.contains(p)) {
l.add(p);
}
}
System.out.println(l.size());
Iterator<Person> it = l.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
sc.close();
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huluwadeyeye/article/details/79949227

插件管理框架 for Delphi(一)

1       前言 1.1   插件技术 许多软件采用“插件”(PlugIns)来扩展其功能,比如PhotoShop所支持的各类滤镜就是插件;我们所熟知的Winamp,也有许多皮肤以及可视效果插件。...
  • Musicwind
  • Musicwind
  • 2004-05-25 10:27:00
  • 9213

C~K的班级(java)

Problem Description经过不懈的努力,C~K终于当上了班主任。现在他要统计班里学生的名单,但是C~K在教务系统中导出班级名单时出了问题,发现会有同学的信息重复,现在他想把重复的同学信息...
  • qq_40390825
  • qq_40390825
  • 2018-04-21 22:53:59
  • 9

JAVA C~K的班级

C~K的班级Time Limit: 1500 ms Memory Limit: 65536 KiB Submit Statistic Problem Desc...
  • Joywss
  • Joywss
  • 2018-04-22 16:13:09
  • 1

c语言设计一个班级管理系统

  • 2015年11月01日 22:25
  • 5KB
  • 下载

班级通讯录(c语言)

  • 2012年06月13日 18:40
  • 292KB
  • 下载

C语言编写班级花名册(顺序表版)

C语言编写班级花名册(顺序表版) 需求 :利用顺序表设计班级花名册 日期:2017.3.26  以下是代码: #include #include // 调用malloc 函数 #incl...
  • IMISSHOT
  • IMISSHOT
  • 2017-05-04 18:35:11
  • 291

C语言编写班级花名册(链表版)

C语言编写班级花名册(链表版) 需求 :利用链表设计班级花名册 日期:2017.3.26  以下是代码: #include #include #include #include type...
  • IMISSHOT
  • IMISSHOT
  • 2017-05-04 18:33:12
  • 576

用C编写班级成绩管理系统

  • 2009年06月18日 19:32
  • 118KB
  • 下载

C语言课设-班级成绩统计分析

//定义头文件 #include #include #include //宏定义 #define MAX 18 #define MAXLIN 100 //一个学生的结构体存储结构 typedef st...
  • baolibin528
  • baolibin528
  • 2015-01-17 22:57:45
  • 1613

C语言程序,求班级平均成绩

  • 2010年01月18日 10:13
  • 527B
  • 下载
收藏助手
不良信息举报
您举报文章:C~K的班级
举报原因:
原因补充:

(最多只允许输入30个字)