class Solution(object):
def ladderLength(self, beginWord, endWord, wordList):
"""
:type beginWord: str
:type endWord: str
:type wordList: Set[str]
:rtype: int
"""
wordList.add(endWord)
cur=[beginWord] #possible transformation at each stage
l=len(beginWord)
distance=0 # keep track of the number of transformations
visited=set([beginWord]) #keep track of the set of visited words
while cur:
next=[] #temp list to store each possible transformation at each stage
for word in cur:
if word==endWord:
return distance+1
for i in xrange(l):
for j in 'abcdefghijklmnopqrstuvwxyz':
candidate=word[:i]+j+word[i+1:]
if candidate not in visited and candidate in wordList:
next.append(candidate)
visited.add(candidate)
distance+=1
cur=next
return 0
127. Word Ladder
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 原题 给出两个单词(start和end)和一个字典,找到从start到end的最短转换序列比如:1.每次只能改变一...