卡勒沃夫之弱水路三千
来源:互联网 发布:河南大学软件学院2017 编辑:程序博客网 时间:2024/06/11 19:43
package 搜索;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
public class 卡勒沃夫之弱水路三千 {
static Map<String, ArrayList<String>> map = new HashMap<>();
static String[] result = new String[1000];
static int top = 0;
static HashSet<String> visited = new HashSet<>();
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
while (t-- > 0) {
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
String s1 = sc.next();
String s2 = sc.next();
ArrayList<String> arrayList = map.get(s1);
if (arrayList == null) {
arrayList = new ArrayList<>();
}
arrayList.add(s2);
map.put(s1, arrayList);
}
Set<String> set = map.keySet();
for (String str : set) {
if (!visited.contains(str)) {
dfs(str);
}
}
for (int i = top - 1; i >= 0; i--) {
System.out.print(result[i] + " ");
}
System.out.println();
result = new String[1000];
top = 0;
map.clear();
visited.clear();
}
}
private static void dfs(String str) {
visited.add(str);
ArrayList<String> arrayList = map.get(str);
if (arrayList != null) {
for (String s : arrayList) {
if (!visited.contains(s)) {
dfs(s);
}
}
}
result[top++] = str;
}
}
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
public class 卡勒沃夫之弱水路三千 {
static Map<String, ArrayList<String>> map = new HashMap<>();
static String[] result = new String[1000];
static int top = 0;
static HashSet<String> visited = new HashSet<>();
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
while (t-- > 0) {
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
String s1 = sc.next();
String s2 = sc.next();
ArrayList<String> arrayList = map.get(s1);
if (arrayList == null) {
arrayList = new ArrayList<>();
}
arrayList.add(s2);
map.put(s1, arrayList);
}
Set<String> set = map.keySet();
for (String str : set) {
if (!visited.contains(str)) {
dfs(str);
}
}
for (int i = top - 1; i >= 0; i--) {
System.out.print(result[i] + " ");
}
System.out.println();
result = new String[1000];
top = 0;
map.clear();
visited.clear();
}
}
private static void dfs(String str) {
visited.add(str);
ArrayList<String> arrayList = map.get(str);
if (arrayList != null) {
for (String s : arrayList) {
if (!visited.contains(s)) {
dfs(s);
}
}
}
result[top++] = str;
}
}
0 0
- 卡勒沃夫之弱水路三千
- 卡勒沃夫之弱水路三千1
- 三千弱水,总有一瓢知我冷暖
- 三千记之数据结构
- 若水三千,只取一瓢饮之
- 三千记之知识备忘
- 三千记之知识备忘
- 三千记之实践应用
- 要你命三千又三千的成长之旅
- 要你命三千又三千的成长之旅
- 三千里路云和月
- 三千里路 文字珍贵
- Android倚天剑之Notification之城管三千
- 鏖战三千里江山:万历朝鲜之役(转贴)
- 【百日三千】之JAVA细节——短路
- 夜话三千
- 三千词汇
- [转载] 鏖战三千里江山 ――万历朝鲜之役 zz
- 关于softmax损失函数的推导
- 吝啬的国度_链表
- [2016-05-06]CSS之float详解
- 连通问题
- 卡勒沃夫之弱水路三千1
- 卡勒沃夫之弱水路三千
- Jquery JqGrid常用方法
- Listener模拟单态登录
- 前端和后端服务优化
- 剪格子
- CRC校验简记式意思
- 花朵数的研究
- C++第1次实验(提高班)—简单程序设计
- Oracle PL-SQL Developer集成TFS进行团队脚本文件版本管理