【发布时间】:2015-07-09 20:39:27
【问题描述】:
我在一次采访中遇到了这个问题:
给定两个正则表达式,计算它们之间的编辑距离。编辑距离定义为两个正则表达式分别生成的任意两个字符串之间的最小编辑距离。
正式地,我们正在寻找d(L1,L2) = min { d(x,y) | x from L1, y from L2 },其中L1 和L2 是两个正则表达式生成的语言。
我在面试时无法解决。即使现在我也不知道如何解决它。有什么想法吗?
【问题讨论】:
-
我不确定我是否遵循,正则表达式生成一种语言,可以是无限的,而不是字符串,你如何定义两种语言之间的距离?你能举个例子吗?
-
好的,我想我明白了 - 你的意思是
d(L1,L2) = min { d(x,y) | x from L1, y from L2 }吗? -
@amit:是的。我是这个意思。
-
恕我直言,我们可以像解决两个字符串之间的最小编辑距离一样解决这个问题。
标签: regex string algorithm dynamic-programming