我有一個相當獨特的問題,我遇到了問題解決。我有一張2 x 3的桌子,排列如下。複雜的表格合併javascript&jquery算法
_ __ _ _ __
1- | _ __ _ | __ _ _ |
2- | _ __ _ | __ _ _ |
3- | _ __ _ | __ _ _ |
數據被填充到表格的單元格中。有時,列或行中的數據可能相同。例如,如果(1,1)和(1,2)具有相同的數據。在某些情況下(1,1),(1,2)和(1,3)都可以具有相同的數據。如果單元格中的值相同且相鄰,則需要合併它們。例如,如果(1,1)和(1,2)的值均爲「100」,則這兩個單元格會合並。我手動使用jQuery像這樣做:
(1,2).hide();
(1,1).attr("rowspan", "2");
我隱藏了(1,2)電池,而不是刪除,因爲該表可以恢復到初始的2×3,然後根據需要重新填充。手動,這很好,但我需要一個動態的方法。以下是需要完成的總體目標。
- 如果兩個垂直相鄰的單元格或三個垂直相鄰的單元格在它們各自的列中具有相同的值,則這些單元格會合並在一起。
- 行單元格(如(1,1)和(2,1))可以有重複的數據,並且永遠不會合並。
- 作爲參考,兼容合併的單元組爲{(1,1),(1,2)},{(1,1),(1,2),(1,3)} ,{(1,2),(1,3)},{(2,1),(2,2)},{(2,1),(2,2),(2,3)},{ (2,2),(2,3)}
- 多次合併可能一次發生。例如:{(1,1),(1,2)}具有相同的數據,並且{(2,1),(2,2),(2,3)}具有相同的數據。兩組都單獨合併。
我的主要問題是,我會怎麼寫一個算法來做到這一點,而不寫出每一個可能的情況。有人能告訴我一個可行的例子嗎?我意識到這很複雜,所以請隨時提出澄清問題。先進的非常感謝。這是一個巨大的幫助!
表格總是2x3嗎? – 2012-02-07 18:21:49
聽起來像一份工作......卡諾圖。請參閱http://en.wikipedia.org/wiki/Karnaugh_map – 2012-02-07 18:24:27
該表始終爲2 x 3.單元格的合併可能會導致表格變爲2 x 2或2 x 1. – dremme 2012-02-07 18:25:51