小红背单词

实现代码:

java 复制代码
 public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        scanner.nextLine(); // 读掉换行符
        
        Map<String, Integer> countMap = new HashMap<>();
        Set<String> remembered = new HashSet<>();
        int k = 0; // 当前记住的单词数
        
        for (int i = 0; i < n; i++) {
            String word = scanner.nextLine();
            
            if (remembered.contains(word)) {
                continue; // 已经记住的单词,直接跳过
            }
            
            // 更新该单词的计数
            int count = countMap.getOrDefault(word, 0) + 1;
            countMap.put(word, count);
            
            // 检查是否满足记住条件
            if (count == k + 1) {
                remembered.add(word);
                k++;
                // 可以移除 countMap 中的记录,因为之后遇到会跳过;不移除也不影响
            }
        }
        
        System.out.println(k);
    }
相关推荐
Cosmoshhhyyy6 小时前
《Effective Java》解读第26条:请不要使用原生态类型
java·开发语言
练习时长一年6 小时前
在排序数组中查找元素的第一个和最后一个位置
数据结构·算法·leetcode
阿杆.6 小时前
如何在 Spring Boot 中接入 Amazon ElastiCache
java·spring boot·后端
别惹CC6 小时前
Spring AI 进阶之路04:集成 SearXNG 实现联网搜索
java·后端·spring
资深web全栈开发6 小时前
LeetCode 3573. 买卖股票的最佳时机 V - 动态规划解法详解
算法·leetcode·动态规划
invicinble6 小时前
springboot的日志体系
java·spring boot·后端
leiming66 小时前
C++ 01 函数模板
开发语言·c++·算法
Chen--Xing6 小时前
LeetCode LCR 119.最长连续序列
c++·python·算法·leetcode·rust
金枪不摆鳍6 小时前
算法2-链表
数据结构·算法·链表