PTA 7-2 学术会议地点统计问题-hebust (10 分) JAVA

学术会议地点统计问题

秘书统计张教授【以后简称 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");
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值