leetcode 127. Word Ladder
来源:互联网 发布:公司财务报表软件下载 编辑:程序博客网 时间:2024/05/17 08:04
127. Word Ladder
这是一道广度优先遍历的题目
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 transformed word must exist in the word list. Note that beginWord is not a transformed word.
For example,
Given:
beginWord = "hit"
endWord = "cog"
wordList = ["hot","dot","dog","lot","log","cog"]
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.
- You may assume no duplicates in the word list.
- You may assume beginWord and endWord are non-empty and are not the same.
public class Solution { public int ladderLength(String beginWord, String endWord, List<String> wordList) { Set<String> set=new HashSet<>(); List<String> list=new ArrayList<>(); set.add(beginWord); list.add(beginWord); if(beginWord.length()!=endWord.length())return 0; for(int i=0;i<wordList.size();i++){ if(beginWord.length()==wordList.get(i).length()&&!set.contains(wordList.get(i))){ set.add(wordList.get(i)); list.add(wordList.get(i)); } } int gcount=0; boolean mnark=false; Stack<String> stack=new Stack<>(); Stack<String> mstack=new Stack<>(); set=new HashSet<>(); stack.push(beginWord); set.add(beginWord); list.remove(0); gcount++; while(!stack.empty()){ String str=stack.pop(); set.add(str); for(int i=0;i<list.size();i++){ String temp=list.get(i); int count=0; for(int j=0;j<temp.length();j++){ if(temp.charAt(j)!=str.charAt(j))count++; } if(count==1){ mstack.push(temp); list.remove(i); i--; } } if(set.contains(endWord))return gcount; if(stack.empty()&&!mstack.empty()){ stack=mstack; mstack=new Stack<>(); gcount++; } } if(!mnark)return 0; return gcount; }}
0 0
- [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
- Leetcode-127. Word Ladder
- LeetCode 127. Word Ladder
- Leetcode 127. Word Ladder
- 物体显示轮廓线
- tensorflow函数--weighted_cross_entropy_with_logits
- 浅谈——程序执行和函数的调用
- IMWeb训练营作业
- 树莓派(Raspberry Pi)中PiCamera+OpenCV的使用
- leetcode 127. Word Ladder
- [BZOJ3161]布娃娃(扫描线+线段树)
- C进阶—详解编译、链接
- 2017 Wuhan University Programming Contest 现场赛 K.Wifi Relay(dijkstra)
- [学习笔记05] 正则
- 第一天
- iOS- NSThread/NSOperation/GCD 三种多线程技术的对比及实现
- leetcode 49(java)
- Simditor图片上传