时间:2021/03/05
一.题目描述
输入N个学生的信息,然后进行查询。
输入描述
输入的第一行为N,即学生的个数(N<=1000) 接下来的N行包括N个学生的信息,信息格式如下: 01 李江 男 21 02 刘唐 男 23 03 张军 男 19 04 王娜 女 19 然后输入一个M(M<=10000),接下来会有M行,代表M次查询,每行输入一个学号,格式如下: 02 03 01 04
输出描述
输出M行,每行包括一个对应于查询的学生的信息。 如果没有对应的学生信息,则输出“No Answer!”
题目链接
二.算法
题解
用HashMap存储学生信息,其中学号做键,学生信息做值,这样的查询速度很快。
重点
使用nextLine读到空字符串的问题:https://www.cnblogs.com/machi12/p/14486411.html
代码
import java.util.Scanner; import java.util.HashMap; public class Main{ public static void main(String[] args){ Scanner in = new Scanner(System.in); HashMap<String, String> map = new HashMap<>(); int n = in.nextInt(); String empty = in.nextLine(); for(int i = 0; i < n; i++){ String str = in.nextLine(); String[] s = str.split(" "); map.put(s[0], str); } int m = in.nextInt(); for(int i = 0; i < m; i++){ String id = in.next(); if(map.containsKey(id)){ System.out.println(map.get(id)); } else{ System.out.println("No Answer!"); } } } }