2016-11-12 78 views
1

我想用一個哈希表來存儲的話。 例如,我有兩句話ABA和AAB,因爲它們是由相同的元素只是順序不同,所以我想將它們存儲與同一個指數,該鏈接列表中插入一個鏈接列表。我以某種方式搜索很容易。單詞的元素只有26個字母。如何設計哈希表的正確索引?如何組織表格?哈希表的索引設計

+1

你可以使用質數,例如參見:http://stackoverflow.com/a/11117236/905902 – wildplasser

回答

0

所以,你想用你的哈希表回答的問題是:什麼單詞可以用我有的字母建立?

我假設你正在閱讀一些詞典,並希望把所有的值放在哈希表中。然後,你可以使用一個int數組與統計每個字母出現的次數爲重點(如「A」將是指數0到「z」指數25)和價值,你將不得不使用一個列表,這樣就可以爲該條目添加多個單詞。

但最簡單的解決方案可能只是使用排序的單詞作爲關鍵字(例如'aba'獲取關鍵詞'aab'和'aab'顯然也是),因爲單詞不是很長,排序並不昂貴(避免通過使用字符數組來創建新的字符串)。

所以在Java中,你可以得到這樣的關鍵:

char[] key = word.toCharArray(); 
Arrays.sort(key); 
// and if you want a string 
String myKey = new String(key);