题解 | 小红背单词
小红背单词
https://www.nowcoder.com/practice/b3d0fa1c43c44e0580654cb93c1bfdb9
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
int main(void) {
int n;
scanf("%d", &n);
char ch[10005][11];
for(int i = 0; i < n; i++)
scanf("%s", ch[i]);
char a[10005][11]; //存储唯一单词
int count[10005] = { 0 }; //计算唯一单词数量
int ans = 0;
int a_count = 0;
bool remembered[10005] = {false};
for(int i = 0; i < n; i++){ //遍历ch[], 指向当前ch[];
int idx = -1;
for(int j = 0; j < a_count; j++){ //遍历ch[]前面的元素
if(strcmp(ch[i], a[j]) == 0){
idx = j;
break; //剪枝
}
}
if(idx == -1){
strcpy(a[a_count], ch[i]);
count[a_count] = 1;
remembered[a_count] = false;
idx = a_count;
a_count++;
}else{
if(!remembered[idx])
count[idx]++;
}
if(!remembered[idx] && count[idx] >= ans + 1){
remembered[idx] = true;
ans++;
}
}
printf("%d", ans);
return 0;
}

