题目链接 小阳数数 .
题目:
分析:
由于是数字串,所以每个令牌最多包含十个数字,
遍历所有令牌,有相同的就合并,直到不能合并为止
AC代码:
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int t=sc.nextInt();
while(t-->0){
int n=sc.nextInt();
ArrayList<HashSet<Character>> list=new ArrayList<HashSet<Character>>();
for(int i=0;i<n;i++){
HashSet<Character> set=new HashSet<Character>();
char [] c=sc.next().toCharArray();
int m=c.length;
for(int j=0;j<m;j++){set.add(c[j]);}
list.add(set);
}
int len=Integer.MAX_VALUE;
for(int i=0;i<list.size();i++){
do{
len=list.size();
HashSet<Character> newset=new HashSet<Character>();
for(int j=i+1;list.size()>i+1&&j<list.size();j++){
for(char cc:list.get(j)){
if(list.get(i).contains(cc)){
newset.addAll(list.get(j));
list.remove(j);
j--;break;
}
}
}
list.get(i).addAll(newset);
}while(list.size()<len);
}
System.out.println(list.size());
}
}
}
王跃坤
发布了62 篇原创文章 · 获赞 15 · 访问量 5913
私信
关注