string - 按前缀对字符串数组进行分组的高效算法

标签 string algorithm prefix

我想知道根据前缀列表(任意长度)对字符串数组进行分组的最佳方法是什么。 例如,如果我们有这个:

prefixes = ['GENERAL', 'COMMON', 'HY-PHE-NATED', 'UNDERSCORED_']

然后

tasks = ['COMMONA', 'COMMONB', 'GENERALA', 'HY-PHE-NATEDA', 'UNDERESCORED_A', 'HY-PHE-NATEDB']

应该这样分组:

[['GENERALA'], ['COMMONA', 'COMMONB'], ['HY-PHE-NATEDA', 'HY-PHE-NATEDB'], ['UNDERESCORED_A'] ]

天真的方法是遍历所有任务并在前缀中进行内部循环(反之亦然),然后针对每个前缀测试每个任务。

谁能给我一个提示,告诉我如何以更有效的方式做到这一点?

最佳答案

当然,这在一定程度上取决于您的问题的大小,但是如果您对前缀和任务都进行排序,然后通过仅向前遍历两个排序列表来构建子数组,那么您的天真方法应该没问题。

关于string - 按前缀对字符串数组进行分组的高效算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23637368/

相关文章:

java - 如何用不同的 Unicode 字符构建最长的字符串

algorithm - Raft如何在网络分区时保证一致性?

python - 给定 Python 中前缀表示法的字符串表达式,递归创建二叉树

c# - 实际定义时为 "Namespace prefix not defined"

python - 在 Python 中切换两个列表的第一个和最后一个元素

logic - Idris 中的 Forall 量词和复杂的 bool 命题

r - 字符向量列表与字符向量的模糊字符串匹配

string - 我试图在 matlab 中显示变量名称和它们的值的 num2str 表示

c# - 将字符串转换为日期 - C#

algorithm - 将循环图转换为非循环图