解题思路:
很简单的一道统计不同数字个数的问题,不需要使用stl(可能会超时),也不需要用long long或者int存储每个数据,把每个数字看成一个字符串,然后对每个字符是否出现进行统计,最多就10个不同的字符(0-9),最后查看该字符串的统计结果是否满足要求(即不同数字个数是否小于k)即可。
参考代码:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cstring>
#include <string>
#include <climits>
#include <algorithm>
#include <queue>
#include <vector>
using namespace std;
typedef long long ll;
int n;
int k;
char str[25];
bool flag[10];
int main(){
cin>>n>>k;
int ans=0;
//memset(flag, 0, sizeof(flag));
while (n--) {
scanf("%s",str);
memset(flag, 0, sizeof(flag));
int cnt=0;
for (int i=0; i<strlen(str); i++) {
int j=str[i]-'0';
flag[j]=true;
}
for (int i=0; i<=9; i++) {
if(flag[i])cnt++;
}
if(cnt<k)ans++;
}
cout<<ans<<endl;
return 0;
}