首页 > 306笔试8.24
头像
我的天201908021752646
编辑于 2020-08-24 16:02
+ 关注

306笔试8.24

//第一题:镜面反转,ABA 为NO,AHA为YES,ABC为NO,只需找到反转后和原来相同的字母('A','H','I','M','O','T','U','V','W','X','Y'),并判断是不是回文
public class Main {

    public static void main(String[] args) {
        Set<Character> set=new HashSet<>();
        Character[] chars={'A','H','I','M','O','T','U','V','W','X','Y'};
        Arrays.stream(chars).forEach(set::add);
        Scanner input=new Scanner(System.in);
        while (input.hasNextLine()){
            System.out.println(IsExcept(set,input.nextLine()));
        }

    }

    private static String IsExcept(Set set,String string) {
        int left=0;
        int right=string.length()-1;
        while (left<=right){
            if (!set.contains(string.charAt(left))||!set.contains(string.charAt(right)))return "NO";
            if (string.charAt(left++)!=string.charAt(right--)){
                return "NO";
            }
        }
        return "YES";
    }
}



//第二题:闯关->只需将无道具的先冲关再将有道具的按照分数从大到小排序即可
public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        long n = input.nextLong();
        PriorityQueue<Long> queue = new PriorityQueue<Long>((a, b) -> b.compareTo(a));
        long current=0;
        while (n > 0) {
            long[] item=new long[]{input.nextLong(), input.nextLong()};
            if (item[1]==0){
                current+=item[0];
            }else {
                queue.add(item[0]);
            }
            n--;
        }
        long max = getResult(queue, current);
        System.out.println(max);
    }

    private static long getResult(PriorityQueue<Long> queue, long current) {
        if (queue.isEmpty()) {
            return current;
        } else {
            while (!queue.isEmpty()) {
                current+=Math.max(current,queue.poll());
            }
            return current;
        }
    }
}


全部评论

(0) 回帖
加载中...
话题 回帖

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐