博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode-127-单词接龙
阅读量:5225 次
发布时间:2019-06-14

本文共 1558 字,大约阅读时间需要 5 分钟。

题目描述:

 

 官方题解:双向bfs O(mn) O(mn)

from collections import defaultdictclass Solution:    def __init__(self):        self.length = 0        self.all_combo_dict = defaultdict(list)    def ladderLength(self, beginWord: str, endWord: str, wordList: List[str]) -> int:        if endWord not in wordList or not endWord or not beginWord or not wordList:            return 0        self.length = len(beginWord)        for word in wordList:            for i in range(self.length):                self.all_combo_dict[word[:i] + '*' + word[i+1:]].append(word)        queue_begin = [(beginWord,1)]        queue_end = [(endWord,1)]        visited_begin = {beginWord: 1}        visited_end = {endWord: 1}        ans = None        while queue_begin and queue_end:            ans = self.visitWordNode(queue_begin,visited_begin,visited_end)            if ans:                return ans            ans =self.visitWordNode(queue_end,visited_end,visited_begin)            if ans:                return ans        return 0    def visitWordNode(self,queue,visited,others_visited):        current_word,level = queue.pop(0)        for i in range(self.length):            intermediate_word = current_word[:i] + '*' +current_word[i+1:]            for word in self.all_combo_dict[intermediate_word]:                if word in others_visited:                    return level+others_visited[word]                if word not in visited:                    visited[word] = level+1                    queue.append((word,level +1))        return 0

 

转载于:https://www.cnblogs.com/oldby/p/11191599.html

你可能感兴趣的文章
javascript面相对象编程,封装与继承
查看>>
Atlas命名空间Sys.Data下控件介绍——DataColumn,DataRow和DataTable
查看>>
Java中正则表达式的使用
查看>>
算法之搜索篇
查看>>
新的开始
查看>>
java Facade模式
查看>>
NYOJ 120校园网络(有向图的强连通分量)(Kosaraju算法)
查看>>
SpringAop与AspectJ
查看>>
Leetcode 226: Invert Binary Tree
查看>>
http站点转https站点教程
查看>>
解决miner.start() 返回null
查看>>
关于MFC中窗口的销毁
查看>>
bzoj 2007: [Noi2010]海拔【最小割+dijskstra】
查看>>
BZOJ 1001--[BeiJing2006]狼抓兔子(最短路&对偶图)
查看>>
C# Dynamic通用反序列化Json类型并遍历属性比较
查看>>
128 Longest Consecutive Sequence 一个无序整数数组中找到最长连续序列
查看>>
定制jackson的自定义序列化(null值的处理)
查看>>
auth模块
查看>>
javascript keycode大全
查看>>
前台freemark获取后台的值
查看>>