【发布时间】:2013-04-30 19:00:12
【问题描述】:
我正在尝试找到两个字符串之间的最短路径,并返回一个表示已执行多少步的整数。假设我有一个 HashMap,其中每个 String(key) 都有一个 String[](object) 包含所有字符串邻居。
这段代码是我编写的。我只是拿了一个基本的 BFS 并试图复制它,但我无法找到一种进步的方法。
public class Main {
private static HashMap<String, String[]> list;
private static int makePath(String from, string to) {
int path = 0;
PriorityQueue<String> queue = new PriorityQueue<>();
queue.add(from);
while (!queue.isEmpty()) {
String u = queue.poll();
if (u == to) {
return path;
}
else {
for (String r : list.get(u)) {
...
}
return path;
}
}
return 0;
}
}
这只是我的 HashMap 的一个示例:
Goat, adj[] {Fish, Cow, Chicken}
Cow, adj[] {Pig, Pigeon}
Fish, adj[] {Goat, Bulbasaur, Dolphin, Eagle}
从鱼到牛我需要两个步骤。从鱼到山羊,从山羊到鱼。
所以如果你有任何想法,请随时分享:)
【问题讨论】:
-
“字符串路径”是什么意思?你的意思是像edit distance这样的东西吗?
-
集合中两个字符串之间的路径。每个字符串都有一个它的邻居数组 - 包含在 HashMap 中。
-
我认为他是想说他有一个图数据结构,并且正在寻找一些节点之间的最短路径算法。
标签: java string path breadth-first-search