设置一个队列存储(nowword,count) 设置一个字典存储候选单词当q为空是找不到这样的顺序
class Solution(object):
def ladderLength(self, beginWord, endWord, wordList):
"""
:type beginWord: str
:type endWord: str
:type wordList: List[str]
:rtype: int
"""
dict1={}
for w in wordList:
if not w in dict1:
dict1[w]=1
else:
dict1[w]+=1
q=[(beginWord,1)]
while q:
t,l = q.pop(0)
if t == endWord:
return l
for i in range(len(t)):
left = t[:i]
right = t[i+1:]
for s in 'abcdefghijklmnopqrstuvwxyz':
if s!=t[i]:
nextWord = left+s+right
if nextWord in dict1 and dict1[nextWord]>0:
q.append((nextWord,l+1))
dict1[nextWord]-=1
return 0