

实现代码:
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);
}