预先挂起/在列表中附加字符串对

时间:2010-12-07 14:22:53

标签: java

我有一对字符串对,例如:

A C
B D
B C
A D

我想遍历列表,以便我得到如下字符串:

A C B D A

如果我有n对,这样的事情是否可行和实用?

更新:我没有清楚地描述它。 我有一个: 列表x = .... x.add( “AC”); x.add( “BD”); x.add( “BC”); x.add( “AD”); ... ...

我想循环这样,如果下一行的起始项是当前行的结束项,那么我将丢弃两个并插入一个新项。反之亦然,如果下一行的结束项是当前行的起始项。

e.g。

当前项目:AC 下一行的项目:BD

当前项目:AC 下一行的项目:BC 新项目:ACB

更新列表将具有:

ACB BD AD

然后我将不得不重复这个过程,直到我得到ACBDA。

哈哈......谈到这个已经让我知道如何解决它。看起来有助于谈论它。

2 个答案:

答案 0 :(得分:1)

作为一个疯狂的猜测,您正在寻找的是Hamiltonian Path。网络上应该有很多哈密顿路径求解器的示例实现。

答案 1 :(得分:0)

我也没有看到规则,但也许,你的主要问题是从数据结构中获取字符串并将它们组装成一个结果字符串。这是这项任务的基本方法:

List<String[]> input = getInputFromSomewhere();
StringBuilder resultBuilder = new StringBuilder();
for (String[] pairOfStrings:input) {
  resultBuilder.append(pairOfStrings[0]).append(" ");        
  resultBuilder.append(pairOfStrings[1]).append(" ");
}
String result = resultBuilder.trim();

注1 - 如果任何数组为null或少于2个项目,此代码崩溃。

注2 - 此代码将从您的问题中生成序列。