C自定义重写规则

C custom rewrite rule

我有一个硬 C 程序,但我不了解其要求。问题陈述如下:


写一个程序,读取一个单词,一个数字k和几行,每行都有一个重写规则:一个大写字母,=和一个字符串。重写一个单词用给定的字符串替换每个具有规则的字母;其他字符不变。打印通过重写初始单词 k 次获得的字符串。

示例:

B+AxB 
2
A=AB
B=A

打印

AB+ABAxAB

非常感谢你,我真的很感激你的帮助,因为我什至不明白这个要求。我希望有人能指出我正确的方向。

因为文件有这个内容

B+AxB
2
A=AB
B=A

我想2代表应用规则的次数,所以我们开始吧,首先我们有

B+AxB

那么A应该被AB代替,所以

B+(A->AB)xB -> B+ABxB
(B->A)+ABx(B->A) -> A+ABxA

然后第二次

(A->AB)+(A->AB)Bx(A->AB) -> AB+ABBxAB
AB+AB(B->A)xA -> AB+ABAxAB

请注意,仅应在原始出现处进行替换。

第二行的数字告诉你应用规则的次数 A=ABB=A 在这种情况下 B+AxB 在第一次替换时扩展为 A+ABxA,然后在第二次替换中 AB+ABAxAB