例如,当她按顺序背[you",thank”"thank”]时,她第一次背单词"you"时她就能记住"you”。而由于她已经记住了一个单词,所以需要背两
根据题目描述,我们可以使用一个哈希表来记录每个单词出现的次数。遍历输入的字符串列表,对于每个字符串,如果在哈希表中不存在该单词,则将其添加到哈希表中,并将其出现次数设为1;如果已经存在该单词,则将其出现次数加1。最后,遍历哈希表,统计出现次数大于等于2的单词数量,即为小红今天记住的单词数量。
以下是使用C语言实现的代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 10
int main() {
int n;
scanf("%d", &n);
getchar(); // 读取换行符
// 哈希表
int hash[10001] = {0};
for (int i = 0; i < n; i++) {
char word[MAX_LEN + 1];
fgets(word, MAX_LEN + 1, stdin);
word[strcspn(word, "\n")] = '\0'; // 去除换行符
// 判断单词是否已存在于哈希表中
if (hash[word] == 0) {
hash[word] = 1;
} else {
hash[word]++;
}
}
int count = 0;
for (int i = 0; i < 10001; i++) {
if (hash[i] >= 2) {
count++;
}
}
printf("%d\n", count);
return 0;
}
```
以上代码通过哈希表记录每个单词的出现次数,并统计出现次数大于等于2的单词数量,最后输出结果。注意,题目中给出的字符串长度不超过10,因此我们可以将哈希表的大小设为10001,以便存储所有可能的单词。
以下是使用C语言实现的代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 10
int main() {
int n;
scanf("%d", &n);
getchar(); // 读取换行符
// 哈希表
int hash[10001] = {0};
for (int i = 0; i < n; i++) {
char word[MAX_LEN + 1];
fgets(word, MAX_LEN + 1, stdin);
word[strcspn(word, "\n")] = '\0'; // 去除换行符
// 判断单词是否已存在于哈希表中
if (hash[word] == 0) {
hash[word] = 1;
} else {
hash[word]++;
}
}
int count = 0;
for (int i = 0; i < 10001; i++) {
if (hash[i] >= 2) {
count++;
}
}
printf("%d\n", count);
return 0;
}
```
以上代码通过哈希表记录每个单词的出现次数,并统计出现次数大于等于2的单词数量,最后输出结果。注意,题目中给出的字符串长度不超过10,因此我们可以将哈希表的大小设为10001,以便存储所有可能的单词。