小红背单词

实现代码:

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);
    }
相关推荐
Wang's Blog18 小时前
Java 项目实战: 交友项目 - 圈子互动章总结与自检清单
java·bootstrap·交友
moshuying19 小时前
块扩散 + GDN 改造:Clover 把「并行生成」塞进了 Agent 的长上下文里
前端·算法
没落之王19 小时前
历史系统建模:宋初太祖太宗「再立天庭」秩序重构推演
人工智能·算法·重构
xyouyuweizhu19 小时前
字节流与字符流:Java IO 的两条主线该怎么选
java·开发语言·python
代码方舟19 小时前
零信任架构实战:基于天远人企关联构建自动化供应链核心企业关联穿透与利益冲突审查网关
java·人工智能·架构·自动化
INGNIGHT19 小时前
91 · 最小调整代价(序列dp)
数据结构·算法·leetcode
moshuying19 小时前
扩散模型开始写代码、开网页了:350 亿参数,速度比 Jev 快一倍
前端·算法
小超人诞生日记20 小时前
C++ 异常机制详解:从抛出捕获到异常安全
c++·算法
liyi_hz200820 小时前
O2OA(翱途) V10.1 即将发布|功能再升级,安全再加固,协同更高效!
java·javascript·windows·开源软件
骑着蜗牛撵大象32720 小时前
AI Agent 工程化开发实战(三):用 StateGraph 给智能体搭一条可回放的状态流水线
java·开发语言·jvm·ai·状态管理·langgraph·stategraph