给定一个字符串数组,返回所有字符串组的字符串。给定一个字符串数组,返回所有字符串组的字符串
我的解决方案:
对于阵列中的每个串字,排序它O(米LG米)中,m是一个字的平均长度。
建立一个散列表< string,list>。
将已排序的单词放入散列表中作为键,并且还生成单词的所有排列(O(m!)),用O(m)搜索字典(前缀树映射)中的每个排列,如果它在字典中,将它(O(1))放入散列表中,以便所有置换的单词都用相同的键放入列表中。完全地,O(n * m * lg m * m!)时间和O(n * m!)空间,n是给定数组的大小。
如果m非常大,效率不高,m! 。
任何更好的解决方案?
感谢
我们还应该考虑构建字母表O(sizeof(字典)* k)的成本。在你的解决方案中,O(nk)是给定的字符串数组,而不是字典。谢谢 – user1002288 2011-12-16 20:12:31
是的,我应该已经更清楚了,n是字典的大小,你给的字符串数组可能是l,然后运行时O(lk)字典一旦建成 – silleknarf 2011-12-16 20:27:19