Advertisement

MOOC程序设计算法基础期末第五题

阅读量:

给出初始单词与目标单词以及一个词典,任务是确定从初始单词到目标单词所需的最短转换路径。转换规则如下:

1、每次仅允许修改一个字母;

2、转换过程中产生的中间单词(除初始单词和目标单词外)必须存在于词典中。

例如:

初始单词为:hit

目标单词为:cog

词典为:[hot,dot,dog,lot,log,mot]

其中一种可能的最短转换路径为: hit -> hot -> dot -> dog -> cog,

因此返回的序列长度为5;

注意事项:

1、若无法找到符合条件的转换路径,则输出0;

2、词典中的所有单词长度一致;

3、所有单词均由小写字母组成;

4、初始单词与目标单词可能不在词典中。

输入格式:

共两行,第一行包含初始单词与目标单词(两者不同),以空格分隔。第二行包含多个单词(各不相同),以空格分隔,表示词典。每个单词长度不超过5,总数量不超过30。

输出要求:

输出转换序列的长度。

复制代码
 hit cog

    
 hot dot dog lot log
    
    
    
    

样例输出

复制代码
    5
    

广度优先搜索算法

实现代码如下:

复制代码
 #include<iostream>

    
 #include<vector>
    
 #include<queue>

全部评论 (0)

还没有任何评论哟~