- 输入一些仅由小写字母组成的单词。你的任务是统计有多少个单词是“酷”的,即每种字母出现的次数都不同。比如 ada 是酷的,因为 a 出现 2 次,d 出现 1 次,而 1 和 2 不同。再比如,banana 也是酷的,因为 a 出现 3 次,n 出现 2 次,b 出现 1 次。但是,bbacccd 不是酷的,因为 a 和 d 出现的次数相同(均为 1 次)。
输入输出描述
输入格式
输入包含不超过 30 组数据。每组数据第一行为单词个数 n (1<=n<=10000)。以下 n 行各包含一个单词,字母个数为 1~30。
输出格式
对于每组数据,输出测试点编号和酷单词的个数。
编程要求
根据提示,在右侧编辑器补充代码,根据要求满足输入输出。
测试说明
平台会对你编写的代码进行测试:
样例输入
2
ada
bbacccd
2
illness
a
样例输出
Case 1: 1
Case 2: 0
public class T4 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
Map<Character, Integer> map = new HashMap<>();
int NumberKu = 0;
int[] number;
while (n > 0) {
int flag = 0;
String strings = scanner.next();
char[] chars = strings.toCharArray();
for (int i = 0; i < chars.length; i++) {
if (map.get(chars[i]) != null) {
map.put(chars[i], map.get(chars[i]) + 1);
} else {
map.put(chars[i], 1);
}
}
number = new int[map.size()];
int count = 0;
for (Character character : map.keySet()) {
number[count] = map.get(character);
count++;
}
if (number.length != 1) {
Arrays.sort(number);
for (int i = 1; i < number.length; i++) {
if (number[i] == number[i - 1]) {
flag = 1;
break;
}
}
if (flag == 0) {
NumberKu++;
}
//清空数组 集合
number = null;
map.clear();
}
n--;
}
System.out.println(NumberKu);
}
}