Loading

考研机试 27.查找学生信息

 

时间: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!”

题目链接

https://www.nowcoder.com/practice/fe8bff0750c8448081759f3ee0d86bb4?tpId=40&tqId=21358&rp=1&ru=%2Fta%2Fkaoyan&qru=%2Fta%2Fkaoyan%2Fquestion-ranking&tab=answerKey

 

二.算法

题解

用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!");
            }
        }
    }
}

 

posted @ 2021-03-05 15:35    阅读(80)  评论(0编辑  收藏  举报