华为笔试题
第三题 ac 100%
import java.util.*; public class Huawei03 { public static void main(String[] args) { //处理输入 Scanner sc = new Scanner(System.in); String reporter = sc.nextLine();//发布者 int m = Integer.parseInt(sc.nextLine());//组数 List<String[]> list = new ArrayList<>(); for (int i = 0; i < m; i++) { list.add(sc.nextLine().split(",")); } //bfs Queue<String> queue = new LinkedList<>(); int[] maked = new int[m]; queue.add(reporter); while (!queue.isEmpty()) { String someReporter = queue.poll(); for (int j = 0; j < list.size(); j++) { String[] s = list.get(j); for (int i = 0; i < s.length && maked[j] != 1; i++) { if (s[i].equals(someReporter)) { List<String> stringList = Arrays.asList(s); queue.addAll(stringList); maked[j] = 1; } } } } //获取所有接收信息人群的集合 Set<String> set = new HashSet<>(); for (int i = 0; i < m; i++) { if (maked[i] == 1) { set.addAll(Arrays.asList(list.get(i))); } } int setSize = set.size(); System.out.println(setSize); } }