小红背单词

实现代码:

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);
    }
相关推荐
枫叶林FYL4 分钟前
【自然语言处理 NLP】8.3 长文本推理评估与针在大海堆任务
人工智能·算法
智者知已应修善业6 分钟前
【51单片机1,左边4个LED灯先闪烁2次后,右边4个LED灯再闪烁2次:2,接着所用灯一起闪烁3次,接着重复步骤1,如此循环。】2023-5-19
c++·经验分享·笔记·算法·51单片机
清心歌8 分钟前
HashMap实现原理及扩容机制
java
一只大袋鼠9 分钟前
数据库连接池从入门到精通(下):Druid 连接池使用与工具类封装
java·数据库·连接池
禹中一只鱼12 分钟前
【IDEA 出现 `IDE error occurred`】
java·ide·spring boot·intellij-idea
西凉的悲伤12 分钟前
Guava类库——Lists.partition() 高效分批处理列表数据
java·guava
weixin_4080996712 分钟前
【保姆级教程】按键精灵调用 OCR 文字识别 API(从0到1完整实战 + 可运行脚本)
java·前端·人工智能·后端·ocr·api·按键精灵
xiaoye-duck13 分钟前
《算法题讲解指南:优选算法-队列+宽搜》--70.N叉树的层序遍历,71.二叉树的锯齿形层序遍历,72.二叉树的最大宽度,73.在每个树行中找最大值
数据结构·c++·算法·队列
brahmsjiang14 分钟前
Java类加载机制解析:从JVM启动到双亲委派,再到Android的特殊实现
android·java·jvm
汀、人工智能15 分钟前
[特殊字符] 第98课:数据流中位数
数据结构·算法·数据库架构··数据流·数据流中位数