在Find string to regular expression programmatically?之后,我们假设找到与正则表达式匹配的字符串需要线性时间。我的开头说我们也可以通过编程方式解决正则表达式填字游戏,对吗?
如果是,那么解决NxM正则表达式填字游戏的时间复杂度是多少?
示例:
答案 0 :(得分:1)
即使您不允许反向引用,这也很难。有一个从exact set cover problem到这个问题的简单映射。
如果您设置SerializerFactory
(使用union ElasticClient
),并且不失一般性,那么这些集合包含所有数字1 ... N代表某些N.代表S[1], S[2], ..., S[n]
作为长度为N的字符串,如果k在S
中,则在第k个位置S[i]
,否则为1
。
让正则表达式拼图的列完全相同 - S[i]
,第k行为“(S [k])|(0 *)”。
例如,如果0
和0*10*
,则谜题将是:
S[1] = {1, 4}, S[2] = {2}, S[3] = {3}
此正则表达式拼图的解决方案是{1,2,3,4}与S[4] = {2, 3}
的确切封面。