[Leetcode]127. Word Ladder@python
来源:互联网 发布:马云在阿里的影响力 编辑:程序博客网 时间:2024/04/29 23:15
题目
Given two words (beginWord and endWord), and a dictionary’s word list, find the length of shortest transformation sequence from beginWord to endWord, such that:
Only one letter can be changed at a time
Each intermediate word must exist in the word list
For example,
Given:
beginWord = “hit”
endWord = “cog”
wordList = [“hot”,”dot”,”dog”,”lot”,”log”]
As one shortest transformation is “hit” -> “hot” -> “dot” -> “dog” -> “cog”,
return its length 5.
Note:
Return 0 if there is no such transformation sequence.
All words have the same length.
All words contain only lowercase alphabetic characters.
题目要求
给定两个单词,将单词1转变为单词2,每次转变只能改变一个字母,且改变后的单词要在单词表中出现。
解题思路
此题是参考了南郭子綦的思路。
采用了bfs的方式,每次改变单词中的一个字符,并判断生成的单词是否在wordlist中,直到生成目标单词,或者无法再继续下去。
代码
class Solution(object): def ladderLength(self, beginWord, endWord, wordList): """ :type beginWord: str :type endWord: str :type wordList: Set[str] :rtype: int """ q = [(beginWord,1)] while q: e,lens = q.pop(0) if e == endWord: return lens for i in range(len(e)): left = e[:i] right = e[i + 1:] for c in 'abcdefghigklmnopqrstuvwxyz': if e[i] != c: nextWord = left + c + right if nextWord in wordList: q.append((nextWord,lens + 1)) wordList.remove(nextWord) return 0
- 127. Word Ladder Leetcode Python
- [Leetcode]127. Word Ladder@python
- [Leetcode][python]Word Ladder/Word Ladder II
- [LeetCode]127.Word Ladder
- [Leetcode] 127. Word Ladder
- [leetcode] 127.Word Ladder
- Leetcode-127.Word Ladder
- 127. Word Ladder LeetCode
- Leetcode 127. Word Ladder
- LeetCode 127. Word Ladder
- leetcode 127. Word Ladder
- LeetCode 127. Word Ladder
- LeetCode-127.Word Ladder
- Leetcode 127. Word Ladder
- [leetcode] 127. Word Ladder
- [LeetCode] 127. Word Ladder
- 【LeetCode】127. Word Ladder
- LeetCode 127. Word Ladder
- Git安装使用指南与Github远程仓库
- 深入浅出聊Unity3D项目优化:从Draw Calls到GC
- Mysql 读写分离实现及代理Amoeba的使用
- 关于使用Restlet的升级
- Android中的LruCache缓存技术
- [Leetcode]127. Word Ladder@python
- annotaton之@SuppressWarning
- Partition by子句
- Vim拓展功能及命令
- 名词解释之人身意外伤害产品
- redis快速入门教程
- 敏捷开发中测试角色的窘境
- Simple Java—Strings and Arrays(二)substring()在jdk6和jdk7中的不同
- 安卓动画之属性动画