2024年华为OD机试真题-智能成绩表

华为OD机试真题-智能成绩表-2024年OD统一考试(D卷)

题目描述:

小明来到某学校当老师,需要将学生按考试总分或单科分数进行排名,你能帮帮他吗?

输入描述:

第1行输入两个整数,学生人数n和科目数量m。0<n<100,0<m<10

第2行输入m个科目名称,彼此之间用空格隔开。科目名称只由英文字母构成,单个长度不超过10个字符。科目的出现顺序和后续输入的学生成绩一一对应。不会出现重复的科目名称。

第3行开始的n行,每行包含一个学生的姓名和该生m个科目的成绩(空格隔开),学生不会重名。学生姓名只由英文字母构成,长度不超过10个字符。成绩是0~100的整数,依次对应第2行中输入的科目。

第n+2行,输入用作排名的科目名称。若科目不存在,则按总分进行排序。

输出描述:

输出一行,按成绩排序后的学生名字,空格隔开。成绩相同的按照学生姓名字典顺序排序。

补充说明:

 收起

示例1

输入:

3 2
yuwen shuxue
fangfang 95 90
xiaohua 88 95
minmin 100 82
shuxue

输出:

xiaohua fangfang minmin

说明:

按shuxue成绩排名,依次是xiaohua、fangfang、minmin

示例2

输入:

3 2
yuwen shuxue
fangfang 95 90
xiaohua 88 95
minmin 90 95
zongfen

输出:

fangfang minmin xiaohua

说明:

排序科目不存在,按总分排序,fangfang和minmin总分相同,按姓名的字典顺序,fangfang排在前面

解题思路:考察矩阵排序,使用数组和排序处理,基础题。

Java解法:

import java.util.*;
 
public class Main {
    public static String standard;
    static class Student implements Comparable<Student>{
        String name;
        Map<String,Integer> projects;
        int tot =0;
 
        public Student(String name){
            this.name = name;
            projects = new HashMap<>();
        }
        public void add(String project, int score ){
            projects.put(project,score);
            tot += score;
        }
        @Override
        public int compareTo(Student o){
            int p0 = tot , p1 =o.tot;
            if(projects.containsKey(standard)){
                p0=projects.get(standard);
                p1=o.projects.get(standard);
            }
 
            if(p0 != p1) return p1-p0;
            else
                return name.compareTo(o.name);
        }
    }
 
 
 
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n =sc.nextInt();
        int m =sc.nextInt();
        sc.nextLine();
        String[] projects = sc.nextLine().split(" ");
        List<Student> students = new ArrayList<>();
 
        for(int i=0 ; i<n ; i++){
            String name=sc.next();
            Student student=new Student(name);
            for(int j=0 

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

华为OD机试题库2024年 文章被收录于专栏

2024年OD统一考试(D卷),最新最完整题库。 收录130+道真题,提供解题思路,Java/Python/C++三种答案源码。

全部评论
学到了
1
送花
回复 分享
发布于 06-30 18:38 江苏
华为OD机考题库,最新、最全,欢迎订阅和交流~
点赞
送花
回复 分享
发布于 06-30 18:38 北京
现代汽车中国前瞻数字研发中心
校招火热招聘中
官网直投
od武汉/成都可捞
点赞
送花
回复 分享
发布于 07-01 15:14 北京

相关推荐

6 8 评论
分享
牛客网
牛客企业服务