【发布时间】:2013-05-01 14:32:34
【问题描述】:
我有一个“OR”模式,如下例所示: (X Y Z) | (X Y A B) | (X A K) | (MA J K) | (马甲乙) | (M Z)。 我的问题是我的实际问题的 OR'ed 操作数的数量是巨大的,并且会导致大量的内存消耗问题。
但是,构成模式本身的条目很少(X、Y、Z、A、B、K、M 和 J)。 因此,将该模式转换(优化)为如下模式: (X ((Y (Z | (A B))) | (A K))) | (M ((A ((J K) | B)) | Z)) ,很可能会解决我的记忆问题。
我需要一个算法来获取输入模式(可能是字符串)和 生成优化的(也可能是字符串)。
【问题讨论】:
-
抱歉,我们无法提供帮助。尝试自己写,遇到问题有问题再回来。
-
用什么语言?因为这很容易,如果我知道我在回答什么,我只需要一两分钟
-
我已经尝试解决这个问题,但是失败了。也许它需要额外的努力。 @AngryDuck 我需要一个算法而不是代码。这可能看起来微不足道,但我没有实现它。
-
算法不是代码......好的......那么你打算如何编写/实现这个算法
-
对于给定的非最优子句,最优简化的等效子句是什么?
标签: regex algorithm optimization tree logic