我给出了一组N个单词和一个整数K.如果两个单词具有完全相同的前k个字母和最后k个字母,则它们在同一组中。如果他们有超过k个字母相同或少于k个字母相同,那么这些字不在同一组中。例如: 对于k = 3。单词词汇系列
“ABCDEFG”和“abczefg”是在同一组
“abcddefg”和“abcdzefg”不在同一组(前k + 1页的信是相同的)
“ABC”和“ABC”处于同一组
一个单词可以在多个组中。例如(K = 3):
“abczefg”和“abcefg”形成一个组
“abczaefg”和“abcefg”形成一个组
“abczaefg”和“abczefg”不在同一组(第一k + 1个字母相同)
该问题要求我查找包含最大字数的组数。
我想过使用一个Trie(或前缀树),我认为这是这个问题的正确的数据结构,但我不知道如何适应这个问题,因为如果2个单词有超过k个相同的字母不在同一组中使我感到困惑。我的ideea的复杂度为O(N * N * K),并且考虑到N < = 10,000和K < = 100我认为这个ideea不够快。我想向你解释我的想法,但即使对我来说也不是很清楚,我甚至不知道它是否正确,所以我会跳过这一部分。
我的问题是,如果有一种方法,我可以使用更快的算法解决这个问题,如果有这样的算法,我请你稍微解释一下。非常感谢您的帮助,如果我没有清楚地说明问题,我很抱歉发生了一些严重的错误!