7-42 学术会议地点统计问题-hebust (10 分)
生活随笔
收集整理的這篇文章主要介紹了
7-42 学术会议地点统计问题-hebust (10 分)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
學術會議地點統計問題
秘書統計張教授【以后簡稱 z 】和王教授【以后簡稱 w 】上一年度參加學術會議的情況,教授詳細行程清單如下:
z:bj 3,hz 2,qd 4,nj 5,wh 3,bj 3
w:hn 7,xm 6,bj 4,gz 6,wh 4
現在秘書需要完成以下統計工作。 找出兩位教授共同去過的城市,并找出住宿天數長的教授,按照如下格式輸出:
z:bj 6,w:wh 4
請同學們編寫代碼幫助搞定。
輸入格式:
固定為2行
【數據說明】冒號前面為教授簡稱,冒號后面為會議詳情,分組內使用空格分開,左邊為城市地點簡稱,右邊為住宿天數,多個分組之間使用逗號分開【以上字符均為西文】(測試數據經過專門處理,不存在共同去過的城市有相同天數的情況)
輸出格式:
固定為1行
由0個或者多個記錄組成,記錄格式為:
教授簡稱 冒號 城市簡稱 空格 天數
多個記錄之間使用逗號分開,最后一個記錄末尾沒有逗號
如果0個記錄時,輸出 none
【輸出順序說明】輸出按照城市地點簡稱字母升序排序
【輸出內容說明】如果沒有共同去過的城市,輸出為 none 四個字母,兩邊均無空格
輸入樣例:
在這里給出一組輸入。例如:
輸出樣例:
在這里給出相應的輸出。例如:
z:bj 6,w:wh 4
import java.util.*;public class Main {public static void main(String[] args){Scanner sc=new Scanner(System.in);StringBuilder sb=new StringBuilder();TreeMap<String,Integer> tm2=getMap(sc.nextLine());//tm2是z教授TreeMap<String,Integer> tm1=getMap(sc.nextLine());//tm1是w教授Set<String> strings1 = tm1.keySet();Set<String> strings2 = tm2.keySet();for (String string : strings1) {if (strings2.contains(string)){int num1=tm1.get(string);int num2=tm2.get(string);if (num1>num2){sb.append("w:").append(string).append(" ").append(num1).append(",");}else{sb.append("z:").append(string).append(" ").append(num2).append(",");}}}if (sb.toString().equals("")) System.out.println("none");else{String[] split = sb.toString().split(",");for (int i = 0; i < split.length; i++) {System.out.print(split[i]);if (i!=split.length-1) System.out.print(",");}}sc.close();}public static TreeMap<String,Integer> getMap(String s){TreeMap<String,Integer> tm2=new TreeMap<>();String sss= s.replace(","," ");String[] ss=sss.split(":");String[] s1 = ss[1].split(" ");for (int i1 = 0; i1 < s1.length; i1+=2) {if (tm2.get(s1[i1])!=null){tm2.put(s1[i1], tm2.get(s1[i1])+Integer.parseInt(s1[i1+1]));}else{tm2.put(s1[i1],Integer.parseInt(s1[i1+1]));}}return tm2;} }總結
以上是生活随笔為你收集整理的7-42 学术会议地点统计问题-hebust (10 分)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《英雄联盟手游》5.2版中单英雄强度排行
- 下一篇: 少女前线2追放怎么调整视角方法介绍