2010-12-07 43 views
0

我對字符串,如清單:預掛起/在列表中追加對字符串的

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」); ... ...

我想通過這樣循環,如果下一行的起始項目是當前行的結束項目,那麼我將放棄並插入一個新的項目。反之亦然,如果下一行的結束項目是當前行的起始項目。

例如

當前項目:AC 下一行的項目:BD

當前項目:AC 下一行的項目:BC 新項目:ACB然後

更新列表將有:

ACB BD AD

然後我將不得不重複這個過程,直到我得到ACBDA。

哈哈......談論這個已經給了我一個想法如何解決它。看起來它有助於談論它。

+6

我想我們首先必須解決的問題是「什麼是你想要的字符串的規則是什麼」,然後回答如何實現它。 – Bozho 2010-12-07 14:26:14

+0

請粘貼你的代碼。如果你有一個列表這是相當的不同於一個列表> – daveb 2010-12-07 14:32:22

回答

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 - 此代碼將而不是從您的問題產生序列。

1

作爲一個瘋狂的猜測,你在找什麼叫做Hamiltonian Path。應該有很多網絡上可用的哈密爾頓路徑求解器的示例實現。