小红书【24正式批】测试&运维综合试卷-第一场

1.小红很喜欢刷小红书。她记录了一周七天每天刷小红书的开始时间和结束时间。请你帮小红计算她总共刷了多少分钟。

注:小红有可能在当天的凌晨12点后结束刷小红书!

输入描述 输入14行字符串,每两行代表一天的开始时间和结束时间。

保证开始时间一定迟于17:00,结束时间一定早于03:00(即小红在下午5点之后才会开始刷小红书,且一定会在凌晨3点前睡觉)。

输出描述 一个整数,代表小红总共刷小红书的时间。 题解


    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int sum = 0;
        for (int j = 0; j < 7; j++) {
            String[] times = new String[2];
            for (int i = 0; i < 2; i++) {
                times[i] = in.next();
            }
            String[] split_sta = times[0].split(":");
            String[] split_end = times[1].split(":");
            if ((Integer.parseInt(split_end[0]) <= 23 && Integer.parseInt(split_end[0]) >= 17) || Integer.parseInt(split_end[0]) == 0) {
                sum += (Integer.parseInt(split_end[0]) - Integer.parseInt(split_sta[0])) * 60 + Integer.parseInt(split_end[1]) - Integer.parseInt(split_sta[1]);
            } else {
                sum += (24 - Integer.parseInt(split_sta[0]) + Integer.parseInt(split_end[0])) * 60 + Integer.parseInt(split_end[1]) - Integer.parseInt(split_sta[1]);
            }
        }
        System.out.println(sum);
    }

2.小红书有一个推荐系统,可以根据用户搜索的关键词推荐用户希望获取的内容。现在给定小红的搜索记录(记录为分词后的结果),我们认为当一个单词出现的次数不少于3次时,该单词为“用户期望搜索的单词”,即称为关键词。请你根据小红的记录,输出小红的用户画像对应的所有关键词。

输入描述 一行字符串,仅由小写字母和空格组成。代表小红的搜索记录。

字符串长度不超过100000。

输出描述 小红所有的关键词。每行输出一个。你需要按照搜索频次从高到低输出。频次相同的,你需要按字典序升序输出。

 public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s = in.nextLine();
        String[] strings = s.split(" ");
        HashMap<String, Integer> map = new HashMap<>();
        for (String string : strings) {
            if (!map.containsKey(string)) {
                map.put(string, 1);
            } else {
                map.put(string, map.get(string) + 1);
            }
        }
        List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
        list.removeIf(entry -> entry.getValue() < 3);
        list.sort((e1, e2) -> {
            if (e1.getValue().equals(e2.getValue())) {
                return e1.getKey().compareTo(e2.getKey());
            }
            return e2.getValue().compareTo(e1.getValue());
        });
        for (Map.Entry<String, Integer> l:list){
            System.out.println(l.getKey());
        }

    }

3.小红很喜欢前往小红书分享她的日常生活。已知她生活中有n个事件,分享第i个事件需要她花费ti的时间和hi的精力来编辑文章,并能获得ai的快乐值。小红想知道,在总花费时间不超过T且总花费精力不超过H的前提下,小红最多可以获得多少快乐值?

 public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int T = scanner.nextInt();
        int H = scanner.nextInt();

        int[][] dp = new int[H + 1][T + 1];

        for (int i = 0; i < n; i++) {
            int ti = scanner.nextInt();
            int hi = scanner.nextInt();
            int ai = scanner.nextInt();

            for (int j = H; j >= hi; j--) {
                for (int k = T; k >= ti; k--) {
                    dp[j][k] = Math.max(dp[j][k], dp[j - hi][k - ti] + ai);
                }
            }
        }

        int maxHappiness = 0;
        for (int i = 0; i <= H; i++) {
            for (int j = 0; j <= T; j++) {
                maxHappiness = Math.max(maxHappiness, dp[i][j]);
            }
        }

        System.out.println(maxHappiness);

        scanner.close();
    }
#小红书信息集散地#
全部评论
这个第三题怎么通过不了
点赞 回复 分享
发布于 2024-03-22 20:08 湖北
好帖,顶顶
点赞 回复 分享
发布于 2023-08-09 15:15 广东
海笔 一模一样
点赞 回复 分享
发布于 2023-08-07 11:03 广东

相关推荐

03-25 16:22
南华大学 Java
不敢追175女神:你是打了上千个招呼吧?😂
点赞 评论 收藏
分享
评论
7
16
分享

创作者周榜

更多
牛客网
牛客企业服务