考虑到2个文本,其中一个是通过重复应用“查找和替换全部”从另一个创建的,是否有一个有效的算法来查找查找/替换参数是什么?
示例1
之前:Bob and Tom and Harry
寻找&替换:Bob & Tom & Harry
所需输出:and => &
例2
之前:Bob and Tom and Harry hold hands
寻找&替换:Bxxb & Txxm & Harry hxxld hands
所需输出:_and => _&
,o => xx
(_表示空格 - 不匹配'手'的必要条件。)
对于暴力,您可以尝试应用Find&用before-string的所有子串的“find”参数替换'before'字符串,并在after-string的所有子串中替换“replace”参数,并查看任何结果字符串是否等于'after'字符串。但这对于任何非常短的字符串都需要很长时间(指数?)。是否有一种常用的算法或启发式算法可以在更好的时间内执行?