MCPcopy Index your code
hub / github.com/neetcode-gh/leetcode / ladderLength

Method ladderLength

java/0127-word-ladder.java:5–56  ·  view source on GitHub ↗
(
        String beginWord,
        String endWord,
        List<String> wordList
    )

Source from the content-addressed store, hash-verified

3class Solution {
4
5 public int ladderLength(
6 String beginWord,
7 String endWord,
8 List<String> wordList
9 ) {
10 Map<String, List<String>> adjlist = new HashMap<>();
11 wordList.add(beginWord);
12 for (String word : wordList) {
13 StringBuilder string = null;
14 for (int i = 0; i < word.length(); i++) {
15 string = new StringBuilder(word);
16 string.setCharAt(i, '*');
17 List<String> wordlist = adjlist.getOrDefault(
18 string.toString(),
19 new ArrayList<String>()
20 );
21 wordlist.add(word);
22 adjlist.put(string.toString(), wordlist);
23 }
24 }
25
26 Queue<String> queue = new LinkedList<>();
27 queue.offer(beginWord);
28 Set<String> visited = new HashSet<>();
29 visited.add(beginWord);
30 int step = 1;
31 StringBuilder string = null;
32 while (!queue.isEmpty()) {
33 step++;
34 int size = queue.size();
35 for (int j = 0; j < size; j++) {
36 String str = queue.poll();
37
38 for (int i = 0; i < str.length(); i++) {
39 string = new StringBuilder(str);
40 string.setCharAt(i, '*');
41 for (String pat : adjlist.get(string.toString())) {
42 if (pat.equals(endWord)) {
43 return step;
44 }
45 if (visited.contains(pat)) {
46 continue;
47 }
48 queue.offer(pat);
49 visited.add(pat);
50 }
51 }
52 }
53 // step++;
54 }
55 return 0;
56 }
57}

Callers

nothing calls this directly

Calls 8

equalsMethod · 0.80
addMethod · 0.45
toStringMethod · 0.45
putMethod · 0.45
isEmptyMethod · 0.45
sizeMethod · 0.45
getMethod · 0.45
containsMethod · 0.45

Tested by

no test coverage detected