检查字符串替换规则是否会生成另一个字符串

时间:2010-06-17 22:18:44

标签: algorithm

不是作业。

给出两个相同长度的字符串S和T. 给定一组替换规则,在S中查找子字符串A并将其替换为字符串B. A和B的长度相同。

是否存在一系列规则应用,以便将字符串S变为字符串T?

实施例: 我们有替换规则

cat->dog
dog->cut

我们有字符串 S1:awesomecat和S2:awesomecut

替换顺序可以是

awesomecat 
awesomedog cat->dog
awesomecut dog->cut

这是一个简单的例子,可能有这样的规则。

cat->dog
ate->dog
dog->cat

我认为没有比在每个州都尝试每一条规则更好的方法来回答这个问题。这将是指数时间。但我不知道是否有更好的解决方案。

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

您可以轻松地将此问题映射到有向图,其中所有规则都是从一个节点到另一个节点的路径。

收到输入 A B 后,检查它们之间的差异,看看图表中是否有一条产生预期结果的路径。