leetcode JAVA Word Ladder 3.44 难度系数3
来源:互联网 发布:scratch编程怎么下载 编辑:程序博客网 时间:2024/05/21 22:57
Question:
Given two words (start and end), and a dictionary, find the length of shortest transformation sequence from start to end, such that:
- Only one letter can be changed at a time
- Each intermediate word must exist in the dictionary
For example,
Given:
start = "hit"
end = "cog"
dict = ["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.
public class Solution { public int ladderLength(String start, String end, HashSet<String> dict) {int path = 0;Queue<String> queue = new LinkedList<String>();queue.offer(start);HashSet<String> hs = new HashSet<>();hs.add(start);int length1 = 1;int length2 = 0;while(!queue.isEmpty()){String s = queue.poll();length1--;HashSet<String> hsstr = nextStr(s,dict,hs);length2 +=hsstr.size();for(String str:hsstr){if(str.equals(end)){return path+2;}else{queue.offer(str);}}if(length1==0){path++;length1=length2;length2 = 0;}}return 0;}private HashSet<String> nextStr(String s, HashSet<String> dict,HashSet<String> hs) {HashSet<String> hsstr = new HashSet<>();for(int i=0;i<s.length();i++){StringBuffer sb = new StringBuffer(s);for(char c='a';c<='z';c++){sb.setCharAt(i,c);String temp = sb.toString();if(dict.contains(temp)&&!hs.contains(temp)){hs.add(temp);hsstr.add(temp);}}}return hsstr;}}
0 0
- leetcode JAVA Word Ladder 3.44 难度系数3
- leetcode JAVA Word Search 难度系数3 3.28
- leetcode JAVA Permutations 难度系数3 3.14
- leetcode JAVA Anagrams 难度系数3 3.15
- leetcode JAVA Combinations 难度系数3 3.26
- leetcode JAVA Subsets 难度系数3 3.27
- leetcode JAVA Triangle 难度系数3 3.42
- LeetCode[127. Word Ladder] 题解 难度[medium]
- [Leetcode] Word Ladder (Java)
- [LeetCode][Java] Word Ladder
- leetcode JAVA Combination Sum 难度系数3 3.13
- leetcode JAVA Pow(x, n) 难度系数3 3.16
- leetcode JAVA Maximum Subarray 难度系数3 3.17
- leetcode JAVA Jump Game 难度系数3 3.18
- leetcode JAVA Spiral Matrix II 难度系数3 3.19
- leetcode JAVA Rotate List 难度系数3 3.20
- leetcode JAVA Unique Paths II 难度系数3 3.21
- leetcode JAVA Minimum Path Sum 难度系数3 3.22
- SPOJ PIGBANK
- 学习shell脚本之前的基础知识
- leetcode JAVA Best Time to Buy and Sell Stock II 3.43 难度系数3
- 黑马程序员_Java基础_GUI_22
- [POJ 1986] Distance Queries (LCA)
- leetcode JAVA Word Ladder 3.44 难度系数3
- leetcode JAVA Palindrome Partitioning 3.45 难度系数3
- NYOJ 29 求转置矩阵问题
- 同步机制
- django+mysql出现的问题让我很困惑
- Servlet
- 分割v飞一天的统一发圆通发图呀
- 发一个移动发遇到发图呀
- windows下的线程同步的各种实现 彻底理解多线程同步 面试不惧