Explain shortest transformation via BFS.
01
01
Understand the problem
graphsbfs
02
02
Attempt it yourself
Sketch your approach before reading the solution — that's what interviews test.
Stuck? AI Nudge Available
Get a conceptual hint to guide your logic without spoiling the final implementation.
03
03
Study the solution
The solution is waiting
Give it an honest attempt first — then compare your thinking with the full walkthrough.
04
04
Read the code
BFS over one-letter edits
Run Playgroundfrom collections import deque
def ladder_length(begin, end, word_list):
words = set(word_list)
if end not in words:
return 0
q = deque([(begin, 1)])
seen = {begin}
while q:
word, steps = q.popleft()
if word == end:
return steps
for i in range(len(word)):
for c in 'abcdefghijklmnopqrstuvwxyz':
nxt = word[:i] + c + word[i + 1:]
if nxt in words and nxt not in seen:
seen.add(nxt)
q.append((nxt, steps + 1))
return 0
# --- demo ---
print(ladder_length('hit', 'cog', ['hot', 'dot', 'dog', 'lot', 'log', 'cog'])) # 505
05
Join the discussion
Discussion (0)
Sign in to join the discussion.
No responses yet. Be the first to share what you think.