【发布时间】:2015-09-19 19:41:20
【问题描述】:
问题:
如何识别或统计具有相同的相似词的数量 字母(字母的数量应该相同,顺序可以是任何东西)。
例如,以下是单词:
aabb, aaab, abbb, abaa, abab, aabc, caba, babb, baaa
以下是相似词:
aabb, abab
aaab, abaa, baaa
abbb, babb
aabc, caba
以下是我得到的基本逻辑:
方法一: 首先对单个单词中的字母进行排序。 比较排序后的单词。
方法二: 比较剩余单词中每个单词的每个字母。 (这将是最高的迭代次数)
请提出一些更好的解决逻辑..
【问题讨论】:
-
方法1有什么问题?
-
需要更高效的逻辑..他们不值得..
-
排序并不是真正需要的,我只会使用一组多重集。如果没有可用的多集实现,您只需要一个
Set<Set<Pair<Character,Integer>>> -
有很多方法可以做到这一点。您是否尝试过至少实现您提到的两种方法之一?
-
为每个算法找到大 O,并选择更好的一个