Word Ladder

beginWordString
hit
endWordString
cog
wordListArray
[hot, dot, dog, lot, log, cog]
1def ladderLength(beginWord, endWord, wordList):
2  if endWord not in wordList:
3    return 0
4
5  dict_set = set(wordList)
6  queue = [beginWord]
7  visited = {beginWord}
8  steps = 1
9
10  while queue:
11    level_size = len(queue)
12
13    for i in range(level_size):
14      current = queue.pop(0)
15      if current == endWord:
16        return steps
17
18      # Get neighbors (differ by 1 letter)
19      for j in range(len(current)):
20        for c in 'abcdefghijklmnopqrstuvwxyz':
21          neighbor = current[:j] + c + current[j+1:]
22          if neighbor in dict_set and neighbor not in visited:
23            visited.add(neighbor)
24            queue.append(neighbor)
25
26    steps += 1
27
28  return 0
0 / 24
queue