设置一个队列存储(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

本文深入探讨了单词梯度算法的实现细节,通过构建队列和字典来寻找从开始单词到目标单词的最短路径,利用深度优先搜索策略遍历所有可能的单词转换过程,适用于解决特定类型的字符串匹配问题。
427

被折叠的 条评论
为什么被折叠?



