Ruby 对于常见的组合,如何将字符串与字符串数据库进行比较和存储?
我有一大堆固定长度的字符串(每个字符串的长度可能为100个字符),我想相互比较,找出所有字符串之间最常见的字符组合 将每个新字符串与已收集的字符串数据库进行比较的好方法是什么?那么,将结果和字符串存储到数据库中的好方法是什么?什么样的数据结构适合这种情况Ruby 对于常见的组合,如何将字符串与字符串数据库进行比较和存储?,ruby,data-structures,string-comparison,Ruby,Data Structures,String Comparison,我有一大堆固定长度的字符串(每个字符串的长度可能为100个字符),我想相互比较,找出所有字符串之间最常见的字符组合 将每个新字符串与已收集的字符串数据库进行比较的好方法是什么?那么,将结果和字符串存储到数据库中的好方法是什么?什么样的数据结构适合这种情况 我确实将问题标记为“ruby”,但我认为它非常通用,因此需要寻找任何东西。如果您的意思是,对于这3个字符串: abc 卡介苗 cde 您希望获得以下输出: a - 1 b - 2 c - 3 d - 2 e - 1 ab
我确实将问题标记为“ruby”,但我认为它非常通用,因此需要寻找任何东西。如果您的意思是,对于这3个字符串: abc 卡介苗 cde 您希望获得以下输出:
a - 1
b - 2
c - 3
d - 2
e - 1
ab - 1
bc - 2
cd - 2
de - 1
abc - 1
bcd - 1
cde - 1
然后我建议使用TRIE(),并将每个角色组的出现次数存储在其节点中(为找到的每个新匹配项添加1)
这样,算法就相当简单了
从“abc”开始,当您遍历树(可选地创建新节点)时,为访问的每个节点添加1,然后继续使用“bc”,然后使用“c”。“bcd”也是如此。选择“bcd”、“cd”、“d”
在遍历树并向访问的每个节点添加1时,您应该覆盖所有的双节点、三节点等
希望有帮助,雷兹纳