Lintcode120 Word Ladder solution 题解

【题目描述】

Given two words (startandend), and a dictionary, find the length of shortest transformation sequence fromstarttoend, such that:

1.Only one letter can be changed at a time

2.Each intermediate word must exist in the dictionary

给出两个单词(start和end)和一个字典,找到从start到end的最短转换序列

比如:

1.每次只能改变一个字母。

2.变换过程中的中间单词必须在字典中出现。

【注】1、如果没有转换序列则返回0。

2、所有单词具有相同的长度。

3、所有单词都只包含小写字母。

【题目链接】

www.lintcode.com/en/problem/word-ladder/

【题目解析】

这道题是套用BFS同时也利用BFS能寻找最短路径的特性来解决问题。

把每个单词作为一个node进行BFS。当取得当前字符串时,对他的每一位字符进行从a~z的替换,如果在字典里面,就入队,并将下层count++,并且为了避免环路,需把在字典里检测到的单词从字典里删除。这样对于当前字符串的每一位字符安装a~z替换后,在queue中的单词就作为下一层需要遍历的单词了。

正因为BFS能够把一层所有可能性都遍历了,所以就保证了一旦找到一个单词equals(end),那么return的路径肯定是最短的。

【参考答案】

www.jiuzhang.com/solutions/word-ladder/

你可能感兴趣的:(Lintcode120 Word Ladder solution 题解)