CMU Coding Bootcamp
1def isWordLadder(s: str) -> bool:
2 """Check if a string is a word ladder."""
3 words = s.split("-")
4 if len(words) < 2:
5 return False
6 if len(words[0]) != len(words[-1]):
7 return False
8 if len(set(words)) != len(words):
9 return False
10 for i in range(len(words) - 1):
11 if len(words[i]) != len(words[i + 1]):
12 return False
13 diff = 0
14 for j in range(len(words[i])):
15 if words[i][j] != words[i + 1][j]:
16 diff += 1
17 if diff != 1:
18 return False
19 return True
20
21
22print("Testing isWordLadder()...", end="")
23assert isWordLadder("dog-cog-cot-cat") == True
24assert isWordLadder("cat-bat") == True
25assert isWordLadder("cold-cord-card-ward-warm") == True
26assert isWordLadder("toggle-goggle-google") == True
27assert isWordLadder("cold-cord-card-warm") == False
28assert isWordLadder("cat-bat-cat") == False # duplicate word
29assert isWordLadder("cat-bat-") == False
30assert isWordLadder("cat-cats") == False
31assert isWordLadder("cat-cabs") == False
32assert isWordLadder("cat") == False # just one word
33assert isWordLadder("") == False # no words
34assert isWordLadder("-") == False # no words
35print("Passed!")