CMU Coding Bootcamp
at main 1.2 kB view raw
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!")