问题标题: 酷町堂:3185

0
0
已解决
杨志豪
杨志豪
修练者
修练者

3185   字串变换

题目描述 Description

已知有两个字串 A$, B$ 及一组字串变换的规则(至多6个规则):      A1$ -> B1$      A2$ -> B2$

规则的含义为:在 A$中的子串 A1$ 可以变换为 B1$、A2$ 可以变换为 B2$ …。 例如:A$='abcd' B$='xyz'

变换规则为:     ‘abc’->‘xu’ ‘ud’->‘y’ ‘y’->‘yz’

则此时,A$ 可以经过一系列的变换变为 B$,其变换的过程为:    ‘abcd’->‘xud’->‘xy’->‘xyz’

共进行了三次变换,使得 A$ 变换为B$。

输入描述 Input Description

输入格式如下:
   A$ B$
   A1$ B1$ 
   A2$ B2$ |--> 变换规则
   ... ... / 
所有字符串长度的上限为 20。

输出描述 Output Description

若在 10 步(包含 10步)以内能将 A$ 变换为 B$ ,则输出最少的变换步数;否则输出"NO ANSWER!"

样例输入 Sample Input

 

abcd xyz
abc xu
ud y
y yz

样例输出 Sample Output

 

3


0
已采纳
江齐悦
江齐悦
高级光能
高级光能

这道题有层层递进的关系,所以是广度优先搜索题,记住,这不是dfs,是bfs!如果不会这种算法,建议你还是别在这题上面浪费时间了.

要记录步骤的话还得用到队列

哦对了,这是2002年提高组的第二题哦

1
毛润宇
毛润宇
新手天翼
新手天翼

这简单,应该要用for与if,嵌套一下,也许就可以了。

0
0
0
0
0
0
0
我要回答