注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号
x
问题:127. Word Ladder
- class Solution {
- public int ladderLength(String beginWord, String endWord, List<String> wordList) {
- Queue<String> q = new LinkedList<>();
- HashSet<String> visited = new HashSet<>();
- HashSet<String> dict = new HashSet<>();
- for(int i = 0; i< wordList.size(); i++){
- dict.add(wordList.get(i));
- }
- int level =1;
- q.add(beginWord);
- visited.add(beginWord);
- while(!q.isEmpty()){
- level++;
-
- for(int j=0; j< q.size(); j++){
- String str = q.poll();
- for(int k = 0; k<str.length();k++){
- char [] chars = str.toCharArray();
- for(char c = 'a'; c <= 'z'; c++){
- chars [k] = c;
- String word = new String(chars);
- if(word.equals(endWord)&& dict.contains(word)){
- return level;
- }
- if(dict.contains(word) && !visited.contains(word)){
- q.add(word);
- visited.add(word);
- }
- }
- }
- }
- }
- return 0;
- }
- }
复制代码
------------debug 信息-------------------
beginWord: "hit"
endWord: "cog"
wordList: ["hot","dot","dog","lot","log","cog"]
q: ["dot","lot"]
visited: [lot, hit, dot, hot]
dict: [lot, log, dot, cog, hot, dog]
level: 3
j: 0
beginWord: "hit"
endWord: "cog"
wordList: ["hot","dot","dog","lot","log","cog"]
q: ["lot","dog"]
visited: [lot, hit, dot, hot, dog]
dict: [lot, log, dot, cog, hot, dog]
level: 3
j: 1
beginWord: "hit"
endWord: "cog"
wordList: ["hot","dot","dog","lot","log","cog"]
q: ["lot","dog"]
visited: [lot, hit, dot, hot, dog]
dict: [lot, log, dot, cog, hot, dog]
level: 3
我觉得是["dot", "lot"]这个level上出问题,我觉得我自己陷入一个我自己觉得没问题,但是代码打出来有问题。帮忙点出来我错在哪里?谢谢
|