问题 G: 结义兄弟 java

老是有人想学习一下这个代码,找不到java版本,所以我做了,就写一些,给大家及自己参考。我会就其中的难度做个简略讲解。

问题 G: 结义兄弟

"
时间限制 1 秒/Second(s) 内存限制 128 兆字节/Megabyte(s)
提交总数 1036 正确数量 721
裁判形式 标准裁判/Standard Judge 我的状态 尚未尝试
难度 二级 分类标签 结构体 排序
题目描述
现在有一群同学都想结成异姓兄弟,规定按照年龄大小来从大到小排序。你来搜集这些同学的信息:姓名和对应的出生年月日。且他们不存在同年同月同日生的情况,你来帮助他们排个序。
输入
输入第一行有一个整数N(0< N < 1000)表示N个同学。
接下来有N行,且每行都有一个字符串(全为小写字母且长度小于30)和3个整数 ,分别表示姓名、年、月、日。
所有同学的年龄均为1900年以后的。
输出
请按从大到小的顺序输出所有同学的姓名。
假设不存在同年同月同日生的同学。
样例输入复制
4
zhangsan 2000 7 8
lisi 2000 5 2
wanger 2001 5 1
mazi 2000 5 1
样例输出复制
mazi
lisi
zhangsan
wanger
提示
ahstu@icpc2014
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
/*

@author 马
你看到这个,不存在生日相同的就有规律,可以作为k,v存储。由此想到Map,
也可以结构体,不过java没有,可以用类代替。不赘述了。

*/
public class a01 {

/**
 * @param args
 */

public static void main(String[] args) {
	// TODO Auto-generated method stub
	Scanner cin=new Scanner(System.in);

Map<Integer,String> map=new TreeMap<Integer,String>();
int n=cin.nextInt();
while(n–!=0){//这边提示一下,因为键唯一,所以用生日,值不唯一,但是键对应的值是唯一的。
String v=cin.next();
int k=cin.nextInt()*365+cin.nextInt()*30+cin.nextInt();
map.put(k, v);
}
/*for(String str:map.values()){

System.out.println(str);}*/
for(Entry<Integer, String> entry:map.entrySet()){
System.out.println(entry.getValue());}//增强for的使用大概都会,写一个比较少用的,用键值对输出。
}

}

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值