华为4.15笔试题思路

第一题62.5%可能没考虑不合法输入,第二题一顿折腾,写的太慢,来不及,感觉繁琐,应该是我方法有问题,各位有什么好思路,贴下代码学习下
import java.util.*;
public class Test1 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String input=sc.next();
        String[] s=input.split("\\,+");
        HashMap<String,Integer> map=new HashMap<>();
        for (int i=0;i<s.length;i++){
            map.put(s[i],map.getOrDefault(s[i],0)+1);
        }
        PriorityQueue<Map.Entry<String,Integer>> queue=new PriorityQueue
                <Map.Entry<String,Integer>>(new Comparator<Map.Entry<String, Integer>>() {

            @Override
            public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
                if (o1.getValue() != o2.getValue()) {
                    return o2.getValue() - o1.getValue();
                } else {
                    return o1.getKey().compareTo(o2.getKey());
                }
            }
        });
        for (Map.Entry<String,Integer> entry:map.entrySet()) {
            queue.add(entry);
        }
        Map.Entry<String,Integer> res=queue.poll();
        System.out.println(res.getKey());
    }
}
import java.util.*;
public class Main {
    public static void Test2(String[] args) {
        Scanner sc=new Scanner(System.in);
        String key = sc.next();
        String input=sc.next();
        String[] s=input.split("\\],+");
        s[s.length-1]=s[s.length-1].substring(0,s.length-1);
        boolean flag=false;
        for (int i=0;i<s.length;i++){
            String[] inner=s[i].split("\\[");
            String[] info=inner[1].split("\\,+");
            String[][] per=new String[3][2];

            if (key==inner[0]){
                for (int j=0;j<3;j++){
                    per[j]=info[j].split("\\=+");
                }
                if ("addr"==per[0][0]&&"mask"==per[1][0]
                &&"val"==per[2][0]){
                    System.out.print(per[0][1]+" "+
                            per[1][1]+" "+
                            per[2][1]+"\r\n");
                    flag=true;
                }
            }
        }
        if (flag==false){
            System.out.print("Fail");
        }
    }
}



#华为笔试##华为##笔试题目#
全部评论
第一题62.5检验输入就可以AC了,首字母大写,后边的字母小写
1 回复 分享
发布于 2020-04-15 21:36
第一题同62.5…
点赞 回复 分享
发布于 2020-04-15 21:31

相关推荐

11-01 08:48
门头沟学院 C++
伤心的候选人在吵架:佬你不要的,能不能拿户口本证明过户给我。。球球了
点赞 评论 收藏
分享
感性的干饭人在线蹲牛友:🐮 应该是在嘉定这边叭,禾赛大楼挺好看的
点赞 评论 收藏
分享
点赞 3 评论
分享
牛客网
牛客企业服务