PAT-1004 成績排名(java實現)

這一關感覺還沒第三關難,思路很清晰

題目

1004 成績排名

讀入?n(>0)名學生的姓名、學號、成績,分別輸出成績最高和成績最低學生的姓名和學號。

輸入格式:

每個測試輸入包含 1 個測試用例,格式為

第 1 行:正整數 n
第 2 行:第 1 個學生的姓名 學號 成績
第 3 行:第 2 個學生的姓名 學號 成績... ... ...
第 n+1 行:第 n 個學生的姓名 學號 成績

其中姓名學號均為不超過 10 個字符的字符串,成績為 0 到 100 之間的一個整數,這里保證在一組測試用例中沒有兩個學生的成績是相同的。

輸出格式:

對每個測試用例輸出 2 行,第 1 行是成績最高學生的姓名和學號,第 2 行是成績最低學生的姓名和學號,字符串間有 1 空格。

輸入樣例:

3
Joe Math990112 89
Mike CS991301 100
Mary EE990830 95

輸出樣例:

Mike CS991301
Joe Math990112

解題思路

  1. 首先,和第三關一樣把值存在lis中然后去掉不相關第一條數據;
  2. 其次,參考樣例把字符串在第二個空格出進行拆分,分為成績和名字,放入map中;
  3. 最后,把成績單獨放入一個集合中排序,最后取最大最小值作為map的key取出姓名。

代碼

import java.util.*;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);scanner.useDelimiter("\n");  // 使用換行符作為分隔符List<String> inputList = new ArrayList<>();while (scanner.hasNext()) {String str = scanner.next().trim();  // 去除字符串前后的空格if (str.isEmpty()) {break;  // 如果輸入為空行,則結束循環}inputList.add(str);}inputList.remove(0);Map<String, String> scoreMap = new TreeMap<>();//使用Collections.reverseOrder()方法來創建一個比較器,該比較器按照整數的逆序進行排序。// Comparator.comparingInt(Integer::parseInt)是一個函數引用,它根據元素的整數值進行比較。Set<String> sortSet = new TreeSet<>(Collections.reverseOrder(Comparator.comparingInt(Integer::parseInt)));inputList.forEach(str -> {String name = "";String score = "";int firstSpaceIndex = str.indexOf(' ');if (firstSpaceIndex != -1) {int secondSpaceIndex = str.indexOf(' ', firstSpaceIndex + 1);if (secondSpaceIndex != -1) {//取字符串第二空格前數據name = str.substring(0, secondSpaceIndex);//取字符串第二個空格后數據score =  str.substring(secondSpaceIndex + 1);}}scoreMap.put(score,name);sortSet.add(score);});//打印出最高成績和最低成績的名字System.out.println(sortSet);System.out.println(scoreMap.get(sortSet.toArray(new String[0])[0]));//因為是倒序所以第一個肯定是最大,最后(sortSet.size() - 1)為最小System.out.println(scoreMap.get(sortSet.toArray(new String[0])[sortSet.size() - 1]));}
}

提交結果

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/19937.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/19937.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/19937.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【算法】宵暗的妖怪

?題目鏈接&#xff1a; 宵暗的妖怪 ?題目描述 露米婭作為宵暗的妖怪&#xff0c;非常喜歡吞噬黑暗。這天&#xff0c;她來到了一條路上&#xff0c;準備吞噬這條路上的黑暗。這條道路一共被分為n 部分&#xff0c;每個部分上的黑暗數量為ai 。露米婭每次可以任取 連續的 未被…

賺錢其實沒有秘密,多琢磨一下不丟人

為什么學了很多知識還是掙不到錢&#xff1f; 掙不到錢&#xff0c;是因為你不夠稀缺&#xff1b;掙錢太少&#xff0c;是因為你不懂杠桿&#xff0c;用杠桿撬動稀缺&#xff0c;個人價值自然水漲船高。 學富五車&#xff0c;為何財庫依舊空空&#xff1f;怎樣才能提高掙錢的…

在全志H616核桃派開發板上配置SSH遠程終端方法詳解

熟悉指令用戶可以對已經聯網的核桃派進行局域網SSH遠程終端控制&#xff0c;方便使用自己的PC對核桃派遠程進行各種指令操作。 普通用戶&#xff08;默認&#xff09; 賬號&#xff1a;pi ; 密碼&#xff1a;pi管理員賬戶 賬號&#xff1a;root ; 密碼&#xff1a;root 在這之…

在Android Studio中使用谷歌Gemini代碼助手

今天在做android開發的時候&#xff0c;一個項目使用到了gradle8.0&#xff0c;但是我的Android Studuio根本不支持&#xff0c;無可奈何只能從小蜜蜂版本升級了水母 | 2023.3.1版本&#xff0c;但突然發現AS已經集成了Gemini助手。 首先我們需要下載這個版本的&#xff1a; h…

2.5Bump Mapping 凹凸映射

一、Bump Mapping 介紹 我們想要在屏幕上繪制物體的細節&#xff0c;從尺度上講&#xff0c;一個物體的細節分為&#xff1a;宏觀、中觀、微觀宏觀尺度中其特征會覆蓋多個像素&#xff0c;中觀尺度只覆蓋幾個像素&#xff0c;微觀尺度的特征就會小于一個像素宏觀尺度是由頂點或…

JDBC常見異常(10)—預編譯模式下占位符動態排序字段失效

場景需求 需要根據不同的列進行對應的排序操作&#xff0c;實現動態列名排序 類似&#x1f41f;動態查詢或更新 但是JDBC預編譯模式下占位符的排序字段失效 SQL語句 分頁查詢 select * from (select t.*, rownum rn from(select * from emp order by empno desc) t where …

《java數據結構》--一篇解決二叉搜索樹!!

&#x1f638;二叉搜索樹的概念 二叉搜索樹又名二叉排序樹&#xff0c;一般具有以下性質&#xff1a; 若它的左子樹不為空&#xff0c;則左子樹上所有節點的值都小于根節點的值若它的右子樹不為空&#xff0c;則右子樹上所有節點的值都大于根節點的值它的左右子樹也分別為二叉…

C語言高級編程及實例剖析.pdf

C語言高級編程及實例剖析.pdf C語言&#xff0c;作為一種經典且強大的編程語言&#xff0c;已經在多個領域得到廣泛應用。然而&#xff0c;要想真正掌握C語言的高級編程技巧&#xff0c;卻并非易事。本文將深入探討C語言的高級編程技巧&#xff0c;并結合實例進行詳細剖析&…

61. UE5 RPG 實現敵人近戰攻擊技能和轉向攻擊

在前面&#xff0c;我們實現了敵人的AI系統&#xff0c;敵人可以根據自身的職業進行匹配對應的攻擊方式。比如近戰戰士會靠近目標后進行攻擊然后躲避目標的攻擊接著進行攻擊。我們實現了敵人的AI行為&#xff0c;但是現在還沒有實現需要釋放的技能&#xff0c;接下來&#xff0…

HTML5 音頻 Audio 標簽詳解

HTML5 引入了 <audio> 標簽&#xff0c;允許開發者在網頁中直接嵌入音頻文件&#xff0c;而不需要依賴第三方插件。本文將全面介紹 <audio> 標簽的各種屬性&#xff0c;并通過實例代碼詳細說明其用法。 一、基礎用法 1. 基本結構 HTML5 中使用 <audio> 標…

通過定時器和脈沖控制LED

目錄 一、定時器 &#xff08;一&#xff09;定時器簡介 &#xff08;二&#xff09;定時器類型 1、常見定時器 2、定時器的主要功能 3、常規定時器 &#xff08;三&#xff09;定時器配置 1、定時器標準外設庫接口函數 2、定時器標準外設庫配置 二、PWM &#xff08…

匿名函數(lambda)

自學python如何成為大佬(目錄):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 匿名函數是指沒有名字的函數&#xff0c;應用在需要一個函數&#xff0c;但是又不想費神去命名這個函數的場合。通常情況下&#xff0c;這樣的函數只…

【Qt】Qt界面美化指南:深入理解QSS樣式表的應用與實踐

文章目錄 前言&#xff1a;1. 背景介紹2. 基本語法3. QSS 設置方式3.1. 設置全局樣式3.2. 從文件加載樣式表3.3. 使用 Qt Designer 編輯樣式 總結&#xff1a; 前言&#xff1a; 在當今這個視覺至上的時代&#xff0c;用戶界面&#xff08;UI&#xff09;的設計對于任何軟件產…

智能制造案例專題|與MongoDB一起解鎖工業4.0轉型與增長的無限潛力!

MongoDB 智能制造 數字化技術的洪流在各個產業鏈的主干和枝節涌現。在工業制造領域&#xff0c;能否通過數字化技術實現各生產要素、生產環節之間的緊密配合&#xff0c;高效規劃、管理整個生產流程&#xff0c;是企業提升韌性、贏得競爭的關鍵。隨著工業4.0的深入發展和智能…

高級Java開發者的自我修養:深入剖析JVM垃圾回收機制及面試要點

在探索Java虛擬機&#xff08;JVM&#xff09;的奧秘過程中&#xff0c;垃圾回收機制&#xff08;GC&#xff09;是一個不可或缺的話題&#xff0c;尤其在面對大型應用和系統優化時顯得尤為重要。JVM的自動內存管理是Java編程語言中一項革命性的特性&#xff0c;它大大簡化了程…

測試記錄2:Ubuntu工程直接添加使用Eigen3源文件

直接將Eigen3源文件放入到工程目錄下使用&#xff0c;免安裝 1.新建空文件夾Test_eigen 2.創建將eigen下載的文件夾解壓&#xff0c;重命名為eigen3放入到Test_eigen 3.進入Test_eigen&#xff0c;創建main.cpp #include <iostream> #include <Eigen/Eigen>int m…

AI盒子在智慧加油站的應用

方案背景 為規范加油站作業&#xff0c;保障人民生命財產安全&#xff0c;《加油站作業安全規范》&#xff08;AQ 3010-2007&#xff09;中第五條規定&#xff1a;卸油作業基本要求&#xff0c;明確防靜電、防雷電、防火、人員值守、禁止其他車輛及非工作人員進入卸油區。 痛點…

數據結構基礎篇(4)

十六.循環鏈表 概念 循環鏈表是一種頭尾相接的鏈表&#xff08;最后一個結點的指針域指向頭結點&#xff0c;整個鏈表形成一個環&#xff09;優點 從表任一結點出發均可找到表中其他結點判斷終止 由于循環鏈表中沒有NULL指針&#xff0c;所以涉及遍歷操作時&#xff0c;終止條…

RocketMQ學習(2) 深入學習

RokcetMQ的介紹和基礎知識見這篇博客——RocketMQ學習(1) 快速入門 本篇為上一篇的深入學習&#xff0c;很多基礎知識不再贅述。 目錄 消息重復消費問題(去重;冪等)布隆過濾器 重試機制死信消息 SpringBoot集成RocketMQ集成SpringBoot發送不同消息模式(同步消息)異步消息單向消…

python下載指定URL的文件

import requests # 圖片的URL地址 url https://book.pep.com.cn/1212001402143/files/mobile/1.jpg?240301113921 # 發送HTTP GET請求 response requests.get(url) # 檢查請求是否成功 if response.status_code 200: # 打開一個文件用于寫入 with open(download…