学术会议地点统计问题
秘书统计张教授【以后简称 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 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
import java.util.Scanner;
import java.util.TreeMap;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
TreeMap<String, Integer> z = new TreeMap<String, Integer>();
TreeMap<String, Integer> w = new TreeMap<String, Integer>();
// z jiao shou
String s = sc.nextLine();
s = s.substring(2);
String[] ss = s.split(",");
for(String i : ss) {
// System.out.println(i);
String[] s2 = i.split(" ");
if (!z.containsKey(s2[0])) {
z.put(s2[0], Integer.parseInt(s2[1]));
} else {
z.put(s2[0], Integer.parseInt(s2[1]) + z.get(s2[0]));
}
}
// w jiao shou
s = sc.nextLine();
s = s.substring(2);
ss = s.split(",");
for(String i : ss) {
// System.out.println(i);
String[] s2 = i.split(" ");
if (!w.containsKey(s2[0])) {
w.put(s2[0], Integer.parseInt(s2[1]));
} else {
w.put(s2[0], Integer.parseInt(s2[1]) + w.get(s2[0]));
}
}
// for(String i : w.keySet()){
// System.out.println(i + " " + w.get(i));
// }
int cnt = 0; // 共同去过的城市
for(String i : z.keySet()){
if(w.containsKey(i)){
if(cnt != 0){
System.out.print(",");
}
cnt++;
if(z.get(i) > w.get(i)){
System.out.print("z:" + i + " " + z.get(i));
}
else if(z.get(i) < w.get(i)){
System.out.print("w:" + i + " " + w.get(i));
}
}
}
if(cnt == 0){
System.out.println("none");
}
}
}